2010-10-28 45 views
2

我一直在尝试使用下面的语句来查询电子邮件地址,试图逃避串成功我已经接受了失利小时后不过。PHP/MySQL错误查询电邮地址

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

这给了我一个错误:

MySQL Error: 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 '@gmail.com' at line 1

我敢肯定,这很简单..我只是似乎无法在任何地方找到答案的作品。

UPDATE#1

,我已被使用的代码是:

$email = "[email protected]";

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

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

更新#2

的电子邮件来自Facebook的连接API。

+1

请出示您正在使用的全部生成的查询,以及PHP代码 – 2010-10-28 11:57:02

+0

此外,哪里是E-Mail地址从何而来?用户输入? – 2010-10-28 12:01:26

+0

您显示的代码正在生成语法错误('abc @ email.com'需要引号)。你能显示你使用的确切代码吗?此外,请为电子邮件地址执行'echo $ sql;'并显示结果。 – 2010-10-28 12:05:44

回答

6

这可能是因为你,你从Facebook获得E-Mail地址连接包含引号,例如像

"Harry"@gmail.com 
"[email protected]" 

从Web服务(或其他地方)获取数据时,你需要逃脱数据,以防止SQL injection和乱码查询像您的情况。

你的情况:

$email = mysql_real_escape_string($email); 
相关问题