0

ここでは、かなり単純なものになる可能性が高いと言いたいだけです。

私は基本的に、ユーザーがフォームにいくつかのデータを入力するサイトで作業しています。このフォームは、送信時に、ヘッダーのすぐ下にある db-connection スクリプトを含む別の php ページに送信 (GET) され、次に実行しますINSERT 形式の SQL クエリ。このページは空白で表示されます。mysql_error() がない場合に表示されるはずの html 要素がいくつかあります。

ページの外観は次のとおりです。ここで何が間違っていますか?

           <?php                                                                          
          include '/partials/header.php';                                              
          include '/functions/db_connection.php';                                      

           if(isset($_POST['value0'])) {                                                

            $value0 = mysql_real_escape_string($_POST["value0"]);                        
            $value1 = mysql_real_escape_string($_POST["value1"]);                  
            $value2 = mysql_real_escape_string($_POST["value2"]);                
            $value3 = mysql_real_escape_string($_POST["value3"]);                  
            $value4 = mysql_real_escape_string($_POST["value4"]);                        
            $value5 = date("d-m-Y");                                                     

            $query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7) 
                      VALUES ('. $value0 .',                                        
                                '. $value1 .',                                       
                                '. $value2 .',                                       
                                '. $value3 .', 
                                '. $value4 .',                                          
                                '. $value5 .',                                          
                                'enum-value', 
                                '. $value7 .');";                                        

              $result = mysql_query($query);                                           

              if(!$result)                                                             
              {
                //something went wrong, display the error                              
                echo 'Congratulations, something went wrong. You are officially retarded.<br /><br />' . mysql_error();
                $sql = "ROLLBACK;";
                $result = mysql_query($sql);                                           
              } 
              else
              {                                                                        
                $sql = "COMMIT;";                                                      
                $result = mysql_query($sql);                                           
        ?>      

          <div class="box">                                                            
            <h1 class="green">That's it!</h1>                                       
            <p>Let's do some more novice php scripting.</p>

          </div>

        <?php
      }
    }
?>

そして、ここに私の接続ファイルがあります:

    <?php
    $server = "servername";
    $userName = "username";
    $password = "password";
    $db = "db";       

    $con = mysql_connect($server,$userName,$password,$db);  

    if (mysqli_connect_errno($con)) 
    {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

?> 
4

3 に答える 3

2

文字列の引用符が間違っているか、少なくとも連結が間違っています...

$query = "INSERT INTO yada yada
          VALUES ('. $value0 .', 
                  ^---

二重引用符で囲まれた文字列を開始したため、変数を文字列に「連結」する必要はありません。たとえば$x = "hello $there how are you"、正常に動作します。したがって、全体で二重引用符に切り替えます。

  VALUES ('" . $value0 . "' ...
           ^--           ^--

または、連結の試みを単純に排除します。

  VALUES('$value0', ....
于 2013-04-08T19:45:02.713 に答える
0

このコード ブロックを変更します

$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7) 
          VALUES ('. $value0 .',                                        
                    '. $value1 .',                                       
                    '. $value2 .',                                       
                    '. $value3 .', 
                    '. $value4 .',                                          
                    '. $value5 .',                                          
                    'enum-value', 
                    '. $value7 .');";

これに

$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7) 
          VALUES ('. $value0 .',                                        
                    '. $value1 .',                                       
                    '. $value2 .',                                       
                    '. $value3 .', 
                    '. $value4 .',                                          
                    '. $value5 .',                                          
                    'enum-value', 
                    '. $value7 .')";
于 2013-04-08T19:45:28.160 に答える
0
$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7) 
              VALUES ('". $value0 ."',                                        
                        '". $value1 ."',                                       
                        '". $value2 ."',                                       
                        '". $value3 ."', 
                        '". $value4 ."',                                          
                        '". $value5 ."',                                          
                        'enum-value', 
                        '". $value7 ."')"; 

クエリで引用符が間違っていました。上記を参照。'..' ではなく、変数レルムにステップインするには ".." を使用する必要があります。-文字列が ".

于 2013-04-08T19:45:45.853 に答える