【问题标题】:Array in the parameter when creating PDO query创建 PDO 查询时参数中的数组
【发布时间】:2012-12-19 22:24:15
【问题描述】:

我可以在参数中使用几行吗
示例

SELECT id, city_id FROM an_objects WHERE city_id IN (:arrCity)

(:arrCity) (1,2,3,4,5,6)

但是现在我已经这样做了

SELECT id, city_id FROM an_objects WHERE city_id IN (:1p, :2p, :3p, ...... :100p)

这很糟糕

【问题讨论】:

  • 您可以使用循环在准备好的语句中动态构造参数列表。

标签: php mysql sql pdo


【解决方案1】:
<?php

private function PDOBindArray(&$poStatement, &$paArray){ 
    foreach ($paArray as $k=>$v) {
        @$poStatement->bindValue($k, $v[0], $v[1]);
    }      
}

// the array structure should now look something like this

$inputArray = array(
    ':arrcity' => array($email, PDO::PARAM_STR), 
    ':another_variable' => array($pass, PDO::PARAM_INT)
);
?>

【讨论】:

    【解决方案2】:

    在这种情况下如何成为查询?

    WHERE city_id IN (:1p, :2p, :3p, ...... :100p)
    

    在查询100个参数
    例如,在这个方法中,我们只有 5 个参数

    private function PDOBindArray(&$poStatement, &$paArray){ 
        foreach ($paArray as $k=>$v) {
            @$poStatement->bindValue($k, $v[0], $v[1]);
        }      
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-03
      • 2021-08-04
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多