SQL警告:mysql_real_escape_string()期望参数1为字符串

时间:2011-08-02 13:59:23

标签: php sql

我正在使用以下查询:

$search = mysql_query("SELECT * FROM `users` WHERE username LIKE '%".mysql_real_escape_string($query)."%' OR name LIKE '%".mysql_real_escape_string($query)."%' ORDER BY timestamp");

其中$ query是用户搜索的字词。我收到了以下警告:

警告:mysql_real_escape_string()期望参数1为字符串

该表的用户名为varchar。这是什么问题?或者,任何人都可以帮助我,如果他们知道导致此警告的原因是什么?

3 个答案:

答案 0 :(得分:1)

$query(VARIABLE)不是字符串。这就是错误信息告诉你的简单答案。

解决这个问题。听听错误信息的内容。它不是关于查询本身,而是/ variable /.

答案 1 :(得分:1)

如果用户输入提供了$ query,则应检查以确保它具有值:

if(!is_null($query)) {
....
}

由于您没有显示太多代码,可能是您的分配 $ query失败,导致$ query为NULL。我不认为该错误特定于字符串值 type ,它只是说那里什么都没有!

答案 2 :(得分:0)

$query可能不是字符串(可能是bool或者只是整数) 你可能在此行之前有一些字符串

尝试在查询之前执行此操作

$query = (string) $query

它应该工作,因为它被迫将$ query转换为字符串