0

我的查询:

$result = mysql_query("SELECT * FROM members WHERE email=$email")
or die(mysql_error());

在这种情况下,$email 填充了“info@frankkluytmans.nl”。执行此查询时出现的错误是:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@frankkluytmans.nl' at line 1

我究竟做错了什么?

4

7 回答 7

1

几件事..

  1. 不要使用mysql_*函数,它们已被弃用!
  2. 清理输入。在您的示例中,您应该引用$email,因为它是文字。
于 2013-07-02T19:44:21.517 回答
1

对于 frankkluytmans.nl 与 mysql 查询的语法冲突,即 tablename.columnname

 $result = mysql_query("SELECT * FROM members WHERE email='".$email."'")
于 2013-07-02T19:46:14.487 回答
0

您需要在电子邮件变量周围加上引号。

$result = mysql_query("SELECT * FROM members WHERE email='$email'")
or die(mysql_error());

但是您应该知道,PHP 函数的“mysql_”范围很快就会被弃用,应该用 mysqli API 替换。可以在以下位置找到显示如何使用它的快速示例:http ://www.php.net/manual/en/mysqli.query.php#refsect1-mysqli.query-examples

于 2013-07-02T19:44:43.027 回答
0
$result = mysql_query("SELECT * FROM members WHERE email='$email'")

引用它。

此外,从 PHP 5.5 起,常规的 PHP mysql 函数将被弃用。

看看mysqlipdo

于 2013-07-02T19:44:59.340 回答
0

尝试类似:

$result = mysql_query("SELECT * FROM members WHERE email='".$email."'")
or die(mysql_error());

您需要在变量周围加上引号,并且它的良好做法是在字符串中不包含变量。

您可能想查看 MySQL_ 的替代品,尽管它现在已弃用。试试mysqli

于 2013-07-02T19:45:10.583 回答
0

您需要在 $email 周围加上单引号

$result = mysql_query("SELECT * FROM members WHERE email='$email'")
于 2013-07-02T19:45:15.117 回答
-1

请更改您的查询。

$result = mysqli_query("SELECT * FROM members WHERE email='".$email"'");
于 2013-07-02T19:45:25.920 回答