- 更新したいidカラムはWHEREの条件により複数ある
- 一方、更新したい値は一定である
と言う条件でまとめてMYSQLでUPDATEする方法を探しております。
上記のうち2)において更新したい値が1)の条件により変化数場合についてはteratailの過去の記事かr
見つけることができました。(こちら)
実際にやりたいことはもっとシンプルで常に更新したいのは"no"か"yes"だけです。
以下のようにWHERE IN句ではエラーが出力されてしまったのですが、
(データベース接続失敗。SQLSTATE[HY093]: Invalid parameter number: no parameters were bound)
これを実装する方法にについてアドバイスをいただけますでしょうか?
よろしくお願い申し上げます。
sql
1CREATE TABLE main_table ( 2 id int NOT NULL AUTO_INCREMENT, 3 name VARCHAR(255) NOT NULL, 4 hantei VARCHAR(255) NOT NULL, 5 PRIMARY KEY (id) 6); 7//*sql('INSERT INTO main_table (hantei) VALUES ("no")'); 8//*をループによりすべてのhanteiカラムに"no"が入っている前提になります
php
1 2//もともとmain_tableのhanteiカラムはすべて"no"が格納されている 3$update ="yes"; 4$id_a=1; 5$id_b=2; 6$sql='UPDATE main_table SET hantei =:hantei WHERE id = IN (id_a=:id_a,id_b=:id_b)'; 7 $stmt->bindParam(':hantei',$update,PDO::PARAM_STR); 8 $stmt->bindParam(':id_a',$id_a,PDO::PARAM_STR); 9 $stmt->bindParam(':id_b',$id_b,PDO::PARAM_STR); 10 $stmt =$pdo->prepare($sql); 11 $stmt->execute(); 12 13//やりたいこととしては idカラムが1または2のもについて、hanteiカラムを共通して"no"から"yes"にUPDATEしたいということになります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/19 02:54