首页 >后端开发 >php教程 >如何在mysqli查询中动态绑定多个参数?

如何在mysqli查询中动态绑定多个参数?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-24 06:25:11149浏览

How Can I Dynamically Bind Multiple Parameters in mysqli Queries?

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中文网其他相关文章!

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