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 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“@mink7.com”附近使用正确的语法

4

2 回答 2

2

您应该在第一条 SQL 语句中引用 $email:

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

于 2012-06-07T14:40:08.507 回答
1

marcochiesi 有正确的答案,但我建议使用 mysql_real_escape_string 来帮助防止 SQL 注入攻击:

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

更新

仅供参考,如果您没有在您要约束的信息周围加上引号,那么 MySQL 期望它是一个列。

于 2012-06-07T14:46:36.183 回答