如何在准备好的语句中正确使用 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中文网其他相关文章!