0

我有以下代码:

$query = "SELECT `email` FROM `user` WHERE `email` = " . mysql_real_escape_string($this->email) . "";

我不知道我应该使用哪种引号,因为它不起作用。

4

5 回答 5

2

应使用单引号:

$query = "SELECT `email` FROM `user` WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
于 2013-07-11T09:30:03.253 回答
1

无,您应该使用占位符,然后允许数据库库/服务器处理数据的转义和引用(如如何防止 PHP 中的 SQL 注入?)。

于 2013-07-11T09:32:18.480 回答
0

尝试single quotes('')

$query = "SELECT `email` FROM `user` WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
于 2013-07-11T09:30:14.890 回答
0
$query = "SELECT `email` FROM `user` WHERE `email` = " . mysql_real_escape_string($this->email) . "";

应该

$query = "SELECT `email` FROM `user` WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
于 2013-07-11T09:31:06.383 回答
0

有很多方法可以构建查询。您选择了一种合法的原始方法,但是您使用的扩展被标记为 deprecated。我建议调查mysqli和 PDO。

为您解答。

$query = "SELECT `email` FROM `user` "
       . "WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
于 2013-07-11T09:33:00.760 回答