phpのmysqliを用いて、テーブルのカラムの値に1加算しようとしています。
PHP
1$code = 123456; 2$id = 123; 3 4$sql = "UPDATE `table_name` SET `{$code}` = COALESCE({$code},0)+1 WHERE `ID` = ?"; 5 6if ($stmt = $mysqli->prepare($sql)) { 7 //条件値をSQLにバインド 8 $stmt->bind_param("i", $id); 9 //実行 10 $stmt->execute(); 11}
例えば123456
カラムのid
が123の行の値が3であった場合、1加算して4を書き込みたいのですが、実行してみると
COALESCE({$code},0)
の部分が列名でなく、ただの整数として認識され、123456+1=123457がフィールドに書き込まれています。
すべて数字で記されたカラム名を、加算の際にカラム名として認識させたいのですが、どうすればよいかご教授下さい。
あるいは、そもそもカラム名を数字で記述するという設計に問題があるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。