【发布时间】:2013-07-11 09:29:38
【问题描述】:
我有闲置代码:
$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) . "";
我不知道我应该使用什么样的引号,因为它不起作用。
【问题讨论】:
应使用单引号:
$query = "SELECT `email` FROM `user` WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
【讨论】:
没有,您应该使用占位符,然后允许数据库库/服务器处理数据的转义和引用(如How to prevent SQL injection in PHP? 中所述)。
【讨论】:
$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) . "'";
【讨论】:
试试single quotes('')
$query = "SELECT `email` FROM `user` WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
【讨论】:
有很多方法可以构建查询。您选择了一种合法的原始方法,但您使用的扩展被标记为 deprecated。我建议调查mysqli 和 PDO。
为您解答。
$query = "SELECT `email` FROM `user` "
. "WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
【讨论】: