PDO在UPDATE Multiple ID中准备了语句



我正在开发一个简单的购物系统并使用PDO。但在使用多个值进行更新时,我似乎无法使用PDO。。。看这里:

    // GET MESSAGES ID AND REPLACE '-' WITH ','
    $mid = explode("," , str_replace( '-' , ',' , $mid ));
    $isread = "read";
    $stmt = $conn->prepare("UPDATE `mshop_pms` SET `readperm` = ? WHERE `mid` IN (?)");
    $stmt->execute(array($isread, array($mid)));

我该怎么做?并这样做:

$stmt->execute(array($isread, $mid));

不进行分解,只更新第一行。

这样做是行不通的。您需要对分解的数组进行迭代,然后继续更新。

这里有一个例子:

// GET MESSAGES ID AND REPLACE '-' WITH ','
$mid = explode(",", str_replace('-', ',', $mid));
$isread = "read";
$stmt = $conn->prepare("UPDATE `mshop_pms` SET `readperm` = :readperm WHERE `mid` = :mid");
//now update and iterate
foreach ($mid as $m) {
    $s->bindParam(':readperm', $isread);
    $s->bindParam(':mid', $m);
    $s->execute();
}