mysqli 查询中动态绑定多个参数
传统上,PHP 开发人员依赖冗长的条件语句或手动串联来将多个参数绑定到mysqli 查询。这可能很乏味且容易出错。
硬编码参数绑定
您提供的示例演示了硬编码方法,其中问号和参数类型的数量是手动的根据输入值的数量进行调整。虽然这有效,但它并不是处理动态查询的理想解决方案。
参数解包运算符
幸运的是,PHP 5.6 引入了参数解包运算符 (...)允许我们将数组作为参数传递给需要多个单独参数的函数。
解决方案使用参数解包
在 PHP 5.6 中要动态绑定任意数量的参数,我们可以使用以下方法:
1.创建类型字符串: 将参数类型对应的字符(例如,s 表示字符串)连接与参数数量相同的次数。
$types = str_repeat('s', count($array)); // returns sss...
2.绑定参数: 使用参数解包运算符将 参数值数组 作为单独的参数与 类型字符串 一起传递:
$stmt->bind_param($types, ...$array);
示例:
$array = ['a','b','c']; $sql = "SELECT name FROM table WHERE city IN (?,".str_repeat('?,', count($array) - 2).")"; // returns ?,?,?... $stmt = $mysqli->prepare($sql); $stmt->bind_param('s', ...$array); $stmt->execute();
这种方法可以优雅地处理任意数量的输入参数,无需条件语句或手动连接。
以上是如何在mysqli查询中动态绑定多个参数?的详细内容。更多信息请关注PHP中文网其他相关文章!