MySQLで直近に挿入したオートインクリメントの値と次回挿入する値を取得する方法
2024/04/17
phpとmysqliを使っている中で次回挿入するオートインクリメントの値と、前回挿入したオートインクリメントの値を取得したかった。
前回分は以前からたまに使ってたので良いんだけど、次回挿入する値のところで、max(hoge) + 1みたいな形で取得を考えたけど、行の削除が発生すると+1にならないケースがある。なので以下で対応する。
ソースコード
次回挿入する値を取得
//次回挿入する値を取得 $query = ' SHOW TABLE STATUS LIKE "table" '; $row = $mysqli->query($query); if( $row->num_rows == 0 ){ //行が見当たらない場合は1を入れる $count = 1; } else { while ($rs = $row->fetch_array(MYSQLI_ASSOC)) { $count = $rs['Auto_increment']; //見当たる場合はその値を入れる } }
直近で挿入した値を取得
//直近で挿入した値を取得 $query = ' INSERT INTO table (aaa, bbb) VALUES (aaa, bbb) '; $row = $mysqli->query($query); $count = $mysqli->insert_id; //ここに直近で挿入したオートインクリメント値が入る
関連記事
-
-
エックスサーバーでMySQLのサイズに注意
エックスサーバーで自動更新のログをMySQLに保存するようなシステムを動かしてい ...
-
-
MySQLでdatetime型のカラムから秒は省いて検索する方法
MySQLでdatetime型のカラムに対して「2022-10-07 10:30 ...
-
-
MySQLにてSELECT時にdate型のカラムから干支(十二支)を計算し表示する方法
MySQLにdate型のカラムに誕生年月日が格納されており、そこから干支(十二支 ...
-
-
adminerでMySQLに接続しようとするとエラーになる場合の対応方法
新しく構築したサーバにadminerを入れて接続しようとすると、「mysqlnd ...
-
-
MySQLでtext型カラムに入っている数値をint型としてソートする
MySQLでtext型として指定されているカラムがあり、その中には文字列であった ...