我有以下代码:
$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) . "'";
无,您应该使用占位符,然后允许数据库库/服务器处理数据的转义和引用(如如何防止 PHP 中的 SQL 注入?)。
尝试single quotes('')
$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) . "'";
有很多方法可以构建查询。您选择了一种合法的原始方法,但是您使用的扩展被标记为 deprecated。我建议调查mysqli
和 PDO。
为您解答。
$query = "SELECT `email` FROM `user` "
. "WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";