PHP 绑定通配符

TNK*_*TNK 3 php mysql sql mysqli prepared-statement

希望有人能帮助我了解当变量值旁边需要多字符通配符时如何在 mysqli 中绑定参数。我发现它在创建 SQL 语句时对我有用,如下所示:

$sql = "SELECT item_title FROM item WHERE item_title LIKE '%$title%'";
Run Code Online (Sandbox Code Playgroud)

但是,我尝试按照相同的模式绑定变量,发现它失败了。他们使用了这个代码:

$sql = "SELECT item_title FROM item WHERE item_title LIKE '%?%'";
Run Code Online (Sandbox Code Playgroud)

它引发了这个错误:

警告: mysqli_stmt_bind_param() [function.mysqli-stmt-bind-param]: 变量数与 program_name 在线准备语句中的参数数不匹配......

谁能告诉我如何解决这个问题?谢谢你。

You*_*nse 5

您只能绑定数据文字而不是任意查询部分。
所以,首先准备你的文字

$var = "%$var%";
$sql = "SELECT item_title FROM item WHERE item_title LIKE ?";
Run Code Online (Sandbox Code Playgroud)