mysqlデータベースに "inventory_item"という名前のテーブルがあります。 「id」、「product_id」および「quantity」は表の列です。 "id"は主キーで、レコードが挿入されると自動的に生成されます。mysqlは、テーブルにまだ存在しない場合は複数のレコードを更新または挿入します。
複数のレコードをテーブルに挿入するフォームをユーザーが送信すると、product_idsのすべてのデータとその数量がforeachループで収集されます。
ので、私は、同時に複数のレコードを挿入する必要があると「product_idのは」すでに新しいレコードとして挿入せずにテーブルに存在している場合のみ、数量を更新する必要があります。ここ
は私のコードブロック..です
foreach ($dataArray as $value) {
$pcid = $value["pcid"];
$quantity = $value["quantity"];
$sql = "
UPDATE table.inventory_item
SET quantity='$quantity'
WHERE product_category_id='$pcid'
IF ROW_COUNT()=0
INSERT INTO table.inventory_item
(product_category_id, quantity)
VALUES ('$pcid', '$quantity')
";
$result = $conn->query($sql);
var_dump($result);
}
あなたは単に既存のアイテムの以前の数量で数量を更新するか、古い数量を追加したいですか? –
複数のステートメントを発行する必要があるので、データの整合性を維持するために、トランザクション内でこれを行うようにしてください( 'begin'と' commit')。 – cherouvim