首页 >后端开发 >php教程 >在准备语句中使用 LIKE '%{$var}%' 时如何避免'变量数量不匹配”错误?

在准备语句中使用 LIKE '%{$var}%' 时如何避免'变量数量不匹配”错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-01 21:52:13584浏览

How to Avoid

如何在准备好的语句中正确使用 LIKE '%{$var}%'

当尝试使用 LIKE '%{$var}%' 时}%' 使用准备好的语句,一些用户会遇到错误:“变量数量与准备好的语句中的参数数量不匹配。”这是因为准备好的语句需要特定数量的参数,而语法 '%{$var}%' 没有提供明确的参数计数。

不正确的示例

$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{?}%\' ';

改进的解决方案

要解决此问题,您应该首先创建一个变量包含 LIKE 表达式,并包含通配符。然后,使用bind_param()方法将变量绑定到准备好的语句。

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

通过遵循此方法,您可以使用准备好的语句有效地执行LIKE搜索,同时保持不区分大小写并允许部分匹配。

以上是在准备语句中使用 LIKE '%{$var}%' 时如何避免'变量数量不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn