MySQLiで直近に挿入したオートインクリメントの値と次回挿入する値を取得する方法
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; //ここに直近で挿入したオートインクリメント値が入る
関連記事
-
-
PHPで画像にモザイクをかけて保存
やりたかった事はPHPで ・モザイク処理 ・元の画像とは別にファイル名をつけて保 ...
-
-
MySQLでユニークキーをはる
MySQLでseqとcodeみたいなものをあわせて ユニークキーをはりたかった。 ...
-
-
adminerでMySQLに接続しようとするとエラー
新しく構築したサーバにadminerを入れて接続しようとすると、「mysqlnd ...
-
-
ユーザーエージェントなどユーザー情報を取得する方法
上からUA、IP、ホスト名を取得。 $ua = $_SERVER['HTTP_U ...
-
-
PHPで土日祝を避ける
広告物を土日祝だけ非表示にしたいと言われ、 できたらPHPで行いたかった。 調べ ...
-
-
MySQLでREGEXPについて
SQL文にREGEXPというのを見てこれ何? となったのでメモ。 ■参考サイト ...
-
-
UTF-16にエンコードされている文字列をUTF-8へデコード
エンコードされている文字列であまり見かけない感じのものがあった。UTF-8やSh ...
-
-
PHPで特定のファイル内のみタイムアウトを無効にする
重たい処理をするページだけ、タイムアウトを無効にする場合のメモ。 以下をPHPフ ...
-
-
PHPでサイトマップを動的に生成する
WordPress等のCMSは使っておらず、自動更新するサイトがあり、そのサイト ...
-
-
mysqlで正規化できない時はシリアライズ使う
アンケートか何かに機能追加している際、配列を カンマ区切りで結合して文字列でDB ...