【问题标题】:PDO bindParam with unknown number of parameters参数数量未知的 PDO bindParam
【发布时间】:2015-05-06 13:53:20
【问题描述】:

我想对具有特定 ID 的每一行运行更新查询:

例如

$ids = array(111, 112, 113);
$query = "UPDATE mytable SET columnName = 'Y' WHERE id = :id1 or id = :id2 or id = :id3";
$stmt->bindParam(':id1', $ids[0], PDO::PARAM_INT);
$stmt->bindParam(':id2', $ids[1], PDO::PARAM_INT);
$stmt->bindParam(':id3', $ids[2], PDO::PARAM_INT);

如果我知道有 3 个 id 需要更新,这可以正常工作,但如果 id 字段的数量是可变的,我该怎么做?

【问题讨论】:

    标签: pdo bindparam


    【解决方案1】:

    这样的事情就可以解决问题。

    $ids = array(111, 112, 113);
    $valueString = "";
    
    foreach($ids as $key => $val) {
        $valueString .= ":id" . $key . " = " . $val;
    
        if (end($ids) != $val) {
            $valueString .= ", ";
        }
    }
    
    $query = "UPDATE mytable SET columnName = 'Y' WHERE ". $valueString;
    
    foreach($ids as $key => $val) {
        $stmt->bindParam(':id' . $key, $val, PDO::PARAM_INT);
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-29
      • 2014-03-13
      • 2015-07-10
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      相关资源
      最近更新 更多