php-mysql\u real\u escape\u字符串和varchar问题
我在php中使用mysql\u查询,我的问题是,当我用mysql\u real\u escape\u字符串传递字符串时,它不会返回任何结果。当我删除mysql\u real\u escape\u string函数时,它工作得非常好。这是我的代码:php-mysql\u real\u escape\u字符串和varchar问题,php,mysql,mysql-real-escape-string,Php,Mysql,Mysql Real Escape String,我在php中使用mysql\u查询,我的问题是,当我用mysql\u real\u escape\u字符串传递字符串时,它不会返回任何结果。当我删除mysql\u real\u escape\u string函数时,它工作得非常好。这是我的代码: public function select_user($user) { $sql = "SELECT * FROM users WHERE username LIKE '".mysql_real_escape_string($user)."'"
public function select_user($user) {
$sql = "SELECT * FROM users WHERE username LIKE '".mysql_real_escape_string($user)."'";
return $this->query($sql);
}
请注意,$this->query是一个查询语句的函数。很可能没有为mysql函数建立mysql连接,因此mysql\u real\u escape\u string返回一个空字符串
对于
query()
方法,必须使用API允许的任何格式/绑定功能。。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪些。您希望它做什么?在任何位置检查包含字符串的用户名?你缺少了这方面的标志。另外,不要像上面提到的那样使用mysql扩展。我想我必须使用MySQLi或PDO…这似乎是一个更好的选择…谢谢!您是否将$sql
变量的实际外观与有效版本和无效版本进行了比较。看到它们之间的差异可能会给你一个关于发生了什么的线索。