问题描述
希望有人能帮助我了解当变量值旁边需要多字符通配符时如何在 mysqli 中绑定参数.我发现它在创建 SQL 语句时对我有用,如下所示:
Hope Somebody will help me about how I bind a parameter in mysqli when a multiple character wildcard needs to be next to the variable value. I found that it worked for me when creating a SQL statement, like this:
$sql = "SELECT item_title FROM item WHERE item_title LIKE '%$title%'";
但是,我尝试按照相同的模式绑定变量,发现它失败了.他们使用了这个代码:
However, I tried to bind the variable following the same pattern, and found that it failed. They used this code:
$sql = "SELECT item_title FROM item WHERE item_title LIKE '%?%'";
它引发了这个错误:
警告:mysqli_stmt_bind_param() [function.mysqli-stmt-bind-param]:变量数与准备好的参数数不匹配在线program_name中的语句......
谁能告诉我如何解决这个问题?谢谢你.
Can anybody tell me how fix this problem?Thank you.
推荐答案
您只能绑定数据文字,不能绑定任意查询部分.
所以,先准备好你的文字
You can bind only data literals not arbitrary query parts.
So, prepare your literal first
$var = "%$var%";
$sql = "SELECT item_title FROM item WHERE item_title LIKE ?";
这篇关于PHP 绑定通配符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!