sql语法错误

时间:2011-09-08 22:48:32

标签: php mysql sql

我正在为网站开发一个php脚本,我遇到了这个错误

“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在第1行'=''WHERE email ='nobody@gmail.com''附近使用正确的语法

我几乎已经改变了一切,但我仍然无法得到它

继承人使用的鳕鱼:

$query = "SELECT * FROM users WHERE email='$email'"; 
$result = mysql_query($query) or die(mysql_error());
$num=mysql_num_rows($result);
if(num == 0){}

如果你愿意帮助我解决这个问题,我将不胜感激

2 个答案:

答案 0 :(得分:2)

您必须转义该$ email变量:

$email = mysql_real_escape_string($email);

$query = sprintf("SELECT * FROM users WHERE email= '%s'", $email); 
    $result = mysql_query($query) or die(mysql_error());
    $num=mysql_num_rows($result);
if(num == 0){}

预防sql injection

答案 1 :(得分:0)

尝试连接查询字符串,如下所示:
(string) $query = "SELECT email FROM users WHERE email = '" . $email . "'";
如果您可以访问MySQL服务器的phpMyAdmin,请尝试复制并粘贴到sql选项卡上面的字符串,看看是否有任何不同的情况发生在 echo (string) $query = "SELECT email FROM users WHERE email = '" . $email . "'";