【问题标题】:PHP / MySQLi - array as bind_paramPHP / MySQLi - 数组作为 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 mysqli prepared-statement


【解决方案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 是一个包含查询数据的列表。

    【讨论】:

      猜你喜欢
      • 2017-07-11
      • 1970-01-01
      • 2016-03-03
      • 1970-01-01
      • 2023-03-25
      • 2013-06-18
      相关资源
      最近更新 更多