php-mysql\u real\u escape\u字符串和varchar问题

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)."'"

我在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)."'";
 return $this->query($sql);
} 

请注意,$this->query是一个查询语句的函数。

很可能没有为mysql函数建立mysql连接,因此mysql\u real\u escape\u string返回一个空字符串


对于
query()
方法,必须使用API允许的任何格式/绑定功能。

。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪些。您希望它做什么?在任何位置检查包含字符串的用户名?你缺少了这方面的标志。另外,不要像上面提到的那样使用mysql扩展。我想我必须使用MySQLi或PDO…这似乎是一个更好的选择…谢谢!您是否将
$sql
变量的实际外观与有效版本和无效版本进行了比较。看到它们之间的差异可能会给你一个关于发生了什么的线索。