PHP/MySQL错误查询电子邮件地址

let*_*ngo 2 php mysql

我一直在尝试使用以下语句查询电子邮件地址,但是在成功逃避字符串数小时之后,我接受了失败.

我使用的查询是: SELECT id, email FROM user WHERE email = '$email'

这给了我一个错误:

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

我确信这很简单......我似乎无法在任何有效的地方找到答案.

更新#1

我一直在使用的代码是:

$email = "abc@gmail.com";

$sql = "SELECT id, email FROM user WHERE email = '$email'";

$result = mysql_query($sql) or die('Unable to connect: '.mysql_error());

更新#2

该电子邮件来自Facebook connect API.

Pek*_*ica 6

这可能是因为您从Facebook connect获得的电子邮件地址包含引号,例如

"Harry"@gmail.com  
"Harry@gmail.com"
Run Code Online (Sandbox Code Playgroud)

从Web服务(或从其他任何地方)提取数据时,您需要转义数据以防止SQL注入,并在您的情况下出现乱码查询.

在你的情况下:

$email = mysql_real_escape_string($email);
Run Code Online (Sandbox Code Playgroud)