将 LIKE '%{$var}%' 与准备好的语句一起使用的正确方法?

Correct way to use LIKE '%{$var}%' with prepared statements?

这行不通

$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 %{?}% 错误:0 in /home/rgero/public_html/php/searchadmins.php第 1 行

我该怎么做?我正在尝试搜索播放器功能,该功能会在您输入表单时更新结果,例如 google 已经在您输入时显示答案。如果您键入 dm,我需要用户名 Admin 以在包含 "dm" 的其他用户名中显示它。它也应该不区分大小写

试试这个

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

您只需使用 ? 准备查询,然后使用 bind_param.

绑定参数