【发布时间】:2013-01-19 19:20:59
【问题描述】:
我在 php 中使用 mysql_query,我的问题是,当我使用 mysql_real_escape_string 传递一个字符串时,它没有返回任何结果。当我删除 mysql_real_escape_string 函数时,它工作得很好。这是我的代码:
public function select_user($user) {
$sql = "SELECT * FROM users WHERE username LIKE '".mysql_real_escape_string($user)."'";
return $this->query($sql);
}
注意 $this->query 是一个查询语句的函数。
【问题讨论】:
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。 -
你希望它做什么?在任何地方检查包含字符串的用户名?你错过了
%的标志。另外,如上所述,不要使用mysql_扩展名。 -
嗯,我想我必须使用 MySQLi 或 PDO....这似乎是一个更好的选择...谢谢!
-
您是否将
$sql变量的实际外观与有效版本和无效版本进行了比较。查看它们之间的差异可能会让您了解正在发生的事情。
标签: php mysql mysql-real-escape-string