質問: $conn->prepare($sql); foreach ($test as $id => $value) { $stmt->execute(array($value, ++$id)); } ------------------------------------------------- もし削除処理が行われたら、欠番の穴埋めを行い、尚且つidは オートインクリメントしているので、最終のidを取得してALTER TABLEで 新規データを追加した際にも欠番が出ないようにしようかとも考えましたが、 効率的とは思えなかったので、もしidに欠番があっても該当する「 id 」に 正常にデータをupdateできる構文をご教示いただきく存じます。 ---------------- ▼スペック PHP 5.3.3 MySQL 5.0.95 ----------------
回答: >$id = $_POST['id']; そもそも欠番のIDがPOSTされるというのが「あり得ない」ハズです。当該レコードを選択したらphpスクリプト側で自動的にセットするものであって、ユーザに入力してもらうものではありませんから。 もし「当該IDのデータの更新内容を入力している間に、他の端末から削除されてしまった」というケースを想定するならば、updateした更新件数が 0 だったら【更新できませんでした】とか【当該IDのデータがありません】などと表示して止まるしかありません。削除されたものはどうやってもupdate出来ません。