PHP
1 2$sql = "INSERT INTO `table` 3 (`product_id`,`user_id`,`is_bought`) 4 VALUES (?,?,TRUE) 5 ON DUPLICATE KEY UPDATE 6 `is_bought` = TRUE"; 7 8if ($stmt = $mysqli->prepare($sql)) { 9 $stmt->bind_param("ii", $product_id,$user_id); 10 $stmt->execute(); 11 $stmt->free_result(); 12 $stmt->close(); 13}
上記のように、ON DUPLICATE KEYを用いてINSERT or UPDATEの処理を行っています。
table
がもつフィールドはproduct_id
(int),user_id
(int),is_bought
(boolean)の3つのみで、product_id
(int),user_id
(int)で複合主キーが設定してあります。
クエリを実行した際、行われた処理がINSERTだったのか、UPDATEだったのかが知りたいのですが、うまい方法はないものでしょうか?
(現在は事前にproduct_id
,user_id
でSELECTした結果行数の有無で判断しています。)
回答3件
あなたの回答
tips
プレビュー