@使用PHP和SQL语句签名导致错误

时间:2013-09-20 17:16:06

标签: php mysql sql insert

我正在使用一个PHP站点,它连接到一个数据库并选择我们的一个表来比较信息。目前,在将我们的电子邮件与表格中的记录进行比较时,我们遇到了@符号的问题。

以下是正在发生的事情:

我们使用SELECT语句来比较变量$ Email,以找出帐户的关联ID。问题是当与$ Email进行比较时,我们已经发现错误报告,我们可以看到@ hotmail.com导致SQL语法标准出错。

$id = "SELECT idaccount FROM `animator`.`account` WHERE email = $Email";
$result = mysqli_query($dbc, $id) or die("Error: ".mysqli_error($dbc));

结果如下:

    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 '@hotmail.com' at line 1

有人有任何想法吗?

1 个答案:

答案 0 :(得分:3)

您应该将$ Email值括在单引号中,因此生成的语句如下所示:

SELECT idaccount FROM `animator`.`account` WHERE email = 'something@hotmail.com'

更好的是,您应该准备语句并绑定$ Email的值。看看这里:http://php.net/manual/en/mysqli-stmt.bind-param.php