数组中的php pdo对象

时间:2016-01-04 08:06:42

标签: php pdo

我希望动态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();

1 个答案:

答案 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();