-1

我现在正在使用一个 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

有人有什么想法吗?

4

1 回答 1

3

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

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

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

于 2013-09-20T17:24:02.937 回答