0

我想对具有特定 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 字段的数量是可变的,我该怎么做?

4

1 回答 1

0

像这样的东西可以解决问题。

$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);
}
于 2015-05-06T13:59:42.800 回答