-2

ユーザーが私のウェブサイトに登録すると、個人情報を入力する必要があります。入力した詳細は、データベースの個人の詳細テーブルに追加されます。次のコードがありますが、機能しません。理由がわかりません。誰でも助けることができますか?エラーが発生しています: クエリが空でした

    $myusername=$_POST['username'];
    $mypassword=$_SESSION['mypassword'];
    $firstname = $_POST['firstname'];
    $surname = $_POST['surname'];
    $dob = $_POST['dob'];
    $totalwins = $_POST['totalwins'];
    $totalloses = $_POST['totalloses'];
    $email = $_POST['email'];
    $country = $_POST['country'];
    $info = $_POST['info'];

    // Connect to server and select database.
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");

    $queryreg = mysql_query("

                INSERT INTO $tbl_name VALUES('','','$myusername','$mypassword''$firstname','$surname','$totalwins','$totalloses','$email','$country','$info','$dob' )
        ");

if (!mysql_query($sql))
      {
     die('Error: ' . mysql_error());
      }
      else  {
      echo "<br><br>Your details have been successfully updated. Go back to the                 personal details page to view your updated information.";
    }
4

4 に答える 4

2

自動インクリメントでプライマリフィールドを使用する場合は、フィールド名を指定する必要があります。

$queryreg = mysql_query("INSERT INTO $tbl_name (field1,field2,field3 ecc) VALUES( ... )");

また、コードはインジェクションに対して脆弱です、uso PDO

于 2012-05-25T14:58:42.173 に答える
0

行に$sqlへの割り当て値がないため、クエリは空でした

if (!mysql_query($sql))

解決するには、次のように割り当てる必要があります。

  $sql = "update  $tbl_name set ...";
  if (!mysql_query($sql))
于 2012-05-25T15:02:12.143 に答える
0

あなたのコードで私を怖がらせるものはかなりたくさんあります...

次のように変更します(後$mypasswordにコンマが欠落していて、$sql正しく設定されていませんでした)。

$sql = "INSERT INTO $tbl_name ( [list columns here besides autoincrement ] ) 
    VALUES 
    ('', '$myusername', '$mypassword', '$firstname', '$surname', 
    '$totalwins', '$totalloses', '$email', '$country', '$info', '$dob' )");

if (!mysql_query($sql)) {
于 2012-05-25T15:02:18.897 に答える
0

まず第一に、コードで SQL インジェクションにさらされます。投稿データを準備してエスケープしてください!これは、SQL インジェクション攻撃を防ぐために非常に重要です。そのあたりをよく読んでください。

すると、これが原因でエラーが発生します

if (!mysql_query($sql))
  {
 die('Error: ' . mysql_error());
  }
  else  {
  echo "<br><br>Your details have been successfully updated. Go back to the                 personal details page to view your updated information.";
}

$sql という名前の変数がないようで、2 つのクエリを実行しています。

以下を実行して、フィードバックを投稿してください

$sql = "INSERT INTO $tbl_name VALUES('','','$myusername','$mypassword''$firstname','$surname','$totalwins','$totalloses','$email','$country','$info','$dob' )";

if (!mysql_query($sql))
  {
 die('Error: ' . mysql_error());
  }
  else  {
  echo "<br><br>Your details have been successfully updated. Go back to the                 personal details page to view your updated information.";
}
于 2012-05-25T15:03:31.860 に答える