有
我希望动态sql($ updateStock [$ key])可以执行。
我将值推送到数组$ updateBindValue ['itemQuantity'] [$ itemIndex]和$ updateBindValue ['itemID'] [$ itemIndex]。
我尝试了很多次,但我不知道问题在哪里。
pdo对象数组是否可以执行。
foreach ($item['item'] as $itemIndex => $itemValue) {
$updateStock[$itemIndex] = $PDO->prepare("UPDATE stock SET inStock = inStock + :itemQuantity WHERE id = :itemID");
$updateBindValue['itemQuantity'][$itemIndex] = $itemValue['itemQuantity'];
$updateBindValue['itemID'][$itemIndex] = $itemValue['itemID'];
}
$PDO->beginTransaction();
foreach ($updateStock as $key => $value) {
echo $key;
$updateStock[$key]->bindValue(":itemQuantity",$updateBindValue['itemQuantity'][$key]);
$updateStock[$key]->bindValue(":itemID",$updateBindValue['itemID'][$key]);
$updateStock[$key]->execute();
}
$PDO->commit();
答案 0 :(得分:1)
您不需要PDOStatements数组:
$updateSmt = $PDO->prepare("UPDATE stock SET inStock = inStock + :itemQuantity WHERE id = :itemID");
$PDO->beginTransaction();
foreach ($item['item'] as $itemIndex => $itemValue) {
$updateSmt->bindValue(":itemQuantity",$itemValue['itemQuantity']);
$updateSmt->bindValue(":itemID",$itemValue['itemID']);
$updateSmt->execute();
}
$PDO->commit();