【发布时间】:2015-04-07 17:44:07
【问题描述】:
这不起作用
$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{?}%\' ';
警告:mysqli_stmt::bind_param():变量数与第 1 行 /home/rgero/public_html/php/searchadmins.php 中准备好的语句中的参数数不匹配
这个也不行
$sql = 'SELECT * FROM `users` WHERE username LIKE %{?}% ';
致命错误:错误的 SQL:SELECT * FROM users WHERE username LIKE %{?}% Error: 0 in /home/rgero/public_html/php/searchadmins.php on line 1
我该怎么办?我正在尝试搜索玩家功能,该功能会在您输入表单时更新结果,就像谷歌在您输入时已经显示答案一样。如果您键入 dm,我需要用户名 Admin 以在包含“dm”的其他用户名中显示它。它也应该不区分大小写
【问题讨论】:
-
您必须在要绑定到
?参数的变量上预先添加%。 -
是的,只需在查询中使用
bindParam(1, "%$var%")等和文字LIKE ?。 -
所以我必须取变量并将 %{ 添加到开头并添加 %} 到末尾?
-
@mario 我只是不想让未来的读者产生错误的印象,有些人甚至可能认为他们可以混合不同的 API lol - 我见过多少次了.
-
我只是在回复,因为我收到了有关这些 cmets 的通知。我认为您应该权衡这些“重复”主题获得的观看次数。考虑到谷歌应该惩罚重复内容的事实,并且不知何故仍有几千人在这里结束,这意味着我使用了不同的关键字,这个问题首先出现。如果这在没有答案的情况下关闭,那将意味着 SO 有 3k 次反弹命中。我知道当问题很新鲜但有迹象表明这个问题时,不可能检测到这一点。