MySQLi 查询中多个参数的灵活绑定
目前,为了将多个参数绑定到 MySQLi 查询中,采用以下重复结构:
if ($words_total == 1) { $statement -> bind_param("s", $words[0]); } // ... more if-else conditions for each possible number of parameters ...
要计算查询中需要的问号数量,以下代码使用的是:
$marks = ""; for($i = 1; $i<=$words_total; $i++) { if ($i == $words_total) $marks .= "?"; else $marks .= "?,"; }
参数拆包的改进方法
幸运的是,PHP 5.6 引入了参数拆包运算符 (...),它简化了多个参数的绑定参数。该运算符可以与数组一起使用,而不是依赖于静态类型字符串:
// create an array of parameter values $parameters = [$words[0], $words[1], ... $words]; // create a type string dynamically $types = str_repeat('s', count($parameters)); // bind the array using argument unpacking $statement -> bind_param($types, ...$parameters);
通过这种方法,无论参数数量如何,都可以动态处理绑定。
以上是如何在MySQLi查询中高效绑定多个参数?的详细内容。更多信息请关注PHP中文网其他相关文章!