我正在使用以下查询:
$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。这是什么问题?或者,任何人都可以帮助我,如果他们知道导致此警告的原因是什么?
答案 0 :(得分:1)
$query
(VARIABLE)不是字符串。这就是错误信息告诉你的简单答案。
解决这个问题。听听错误信息的内容。它不是关于查询本身,而是/ variable /.
答案 1 :(得分:1)
如果用户输入提供了$ query,则应检查以确保它具有值:
if(!is_null($query)) {
....
}
由于您没有显示太多代码,可能是您的分配到 $ query失败,导致$ query为NULL。我不认为该错误特定于字符串值 type ,它只是说那里什么都没有!
答案 2 :(得分:0)
$query
可能不是字符串(可能是bool或者只是整数)
你可能在此行之前有一些字符串
尝试在查询之前执行此操作
$query = (string) $query
它应该工作,因为它被迫将$ query转换为字符串