前もって現在の値を取得しなくても、
UPDATEのSQLのSET節でインクリメントなら カラム名 = カラム名 + 1
、デクリメントなら カラム名 = カラム名 - 1
という形で記述すれば変更できる。
<?php $pdo; // new PDO() $sql = "UPDATE {$table} SET col_a = col_a + 1, col_b = col_b + 1, col_c = :col_c_value WHERE id = :id "; $stmt = $pdo->prepare($sql); // 略
特定のインクリメントに限らず特定の数の足し引きはこれで出来そう。(掛け算・割り算は試していてない。)
久しぶりにPHPを触っていました。ちょっと触らないと直ぐ忘れてしまうのです!
INSERTとかUPDATEとかした時に、そのまま追加・変更したデータの行を丸っと取得する方法ってありますか? いつも変更後に改めてSELECTして取得しているのだけれど、なんか無駄にDBにアクセスしている気がしてて...
[参考]
- 作者: 尾崎かおり
- 出版社/メーカー: 新書館
- 発売日: 2015/12/25
- メディア: コミック
- この商品を含むブログ (2件) を見る