PHP / MySQLi - 数组作为 bind_param
Posted
技术标签:
【中文标题】PHP / MySQLi - 数组作为 bind_param【英文标题】:PHP / MySQLi - array as bind_param 【发布时间】:2015-09-01 00:31:53 【问题描述】:我很好奇是否有办法一次绑定参数数组?
简单来说,是这样的:
$sql = "SELECT * FROM table WHERE id IN (?)";
$stmt = $db->prepare($sql);
$stmt->bind_param("<array>", $array_of_ids);
$stmt->execute();
想法?
【问题讨论】:
不确定。待定。 遗憾的是,不,可能重复:php/mysql using an array in WHERE clause 【参考方案1】:我认为你不能这样做,但如果你设置一个参数和值数组,你可以使用类似的 foreach 循环
$params=array(
':id'=>1,
':cat'=>'bananas'
':type'=>100
);
foreach( $params as $param=>$value )$stmt->bind_param( $param,$value );
【讨论】:
【参考方案2】:从 PHP 5.6 开始,这可以通过 ... 运算符实现(另请参见 documentation)。该运算符在调用函数时解包列表,导致列表像多个变量一样。
您可以使用以下内容:
$stmt->bind_param($types, ...$data);
这假定$types
是一个包含数据类型的字符串,$data
是一个包含查询数据的列表。
【讨论】:
以上是关于PHP / MySQLi - 数组作为 bind_param的主要内容,如果未能解决你的问题,请参考以下文章
如何使用带有数组作为第二个参数的 mysqli::bind_param
MySQLi Bind Param 与 IN 的数组 [重复]