PHP / MySQLi - 数组为bind_param

时间:2015-06-16 09:12:41

标签: php mysqli prepared-statement

我很好奇是否有办法一次绑定参数数组

简单来说,就像这样:

$sql = "SELECT * FROM table WHERE id IN (?)";
$stmt = $db->prepare($sql);
$stmt->bind_param("<array>", $array_of_ids);
$stmt->execute();

思想?

2 个答案:

答案 0 :(得分:0)

我不认为你可以这样做,但是如果你设置了一系列参数和值,你可以使用类似

的foreach循环
$params=array(
    ':id'=>1,
    ':cat'=>'bananas'
    ':type'=>100
);
foreach( $params as $param=>$value )$stmt->bind_param( $param,$value );

答案 1 :(得分:0)

从PHP 5.6开始,这可以通过...运算符实现(另请参阅documentation)。此运算符在调用函数时解包列表,导致列表像多个变量一样运行。

您可以使用以下内容:

$stmt->bind_param($types, ...$data);

这假设$types是包含数据类型的字符串,$data是包含查询数据的列表。