UPDATE Multiple ID 中的 PDO 准备语句
PDO prepared statement in 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();
}
我正在开发一个简单的购物系统并使用 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();
}