一尘不染

在准备好的语句中使用LIKE'%{$ var}%'的正确方法?[mysqli]

mysql

这行不通

$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
usersWHERE用户名类似%{?}%错误:第1行的/home/rgero/public_html/php/searchadmins.php中的0

我将如何处理?我正在尝试搜索播放器功能,以在您在表单中输入内容时更新结果,例如google在输入时已经显示了答案。如果您输入dm,我需要用户名Admin,以便在包含“
dm”的其他用户名中显示它。还应该不区分大小写


阅读 392

收藏
2020-05-17

共1个答案

一尘不染

尝试这个

$likeVar = "%" . $yourParam . "%";
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->bind_param("s", $likeVar);
$stmt->execute();

您只需使用即可准备查询,?然后使用绑定参数bind_param

2020-05-17