0

メールアドレスをデータベースに保存しようとしていますが、次のエラーが表示されます

  include 'db.php';
  echo $email = $accounts['username'];
  $date = date ("Y-m-d H:m:s");

  $result = mysql_query("SELECT * FROM users where email = $email", $conn) or die($myQuery."<br/><br/>".mysql_error());
  $num_rows = mysql_num_rows($result);

  if ($num_rows == 0) {
    $query_string = "INSERT INTO users (id, email, created)
                                        VALUES (null, '$email', '$date')";

      if (mysql_query($query_string, $conn)) {
        echo "$name inserted<br/>";
      } else {
        die('Error: ' . mysql_error());
        echo "Error inserting $email<br/>";
      }

  } else {
    echo "$email exists<br/>";
  }

エラー:

SQL 構文にエラーがあります。1行目の「@mink7.com」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

4

2 に答える 2

2

You should quote $email in the first SQL statement:

"SELECT * FROM users where email = '$email'"

于 2012-06-07T14:40:08.507 に答える
1

marcochiesiには正しい答えがありますが、SQLインジェクション攻撃を防ぐためにmysql_real_escape_stringをお勧めします。

"SELECT * FROM users where email = '". mysql_real_escape_string($email)."'"

アップデート

参考までに、制約している情報の周りに引用符を付けない場合、MySQLはそれが列であると期待しています。

于 2012-06-07T14:46:36.183 に答える