勉強したことのメモ

webプログラマが勉強したことのメモ。

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, MySQL, データベース

  関連記事

PHPで画像にロゴをつける

フォームから送られてきた画像にロゴをつけたかった。 結論としてclass.upl ...

phpMyAdminより高速で軽量なAdminerが凄い

MySQLをGUIで管理できるphpMyAdmin。特に不満はないんだけど、もっ ...

WordPressにてPHPのAPCuを使用して高速化を図る方法

先日本サイトのサーバにAPCuを導入した。しかしながら所感にも書いたとおりAPC ...

PHPのheader関数で気になった点

結論としてページの移転の場合はexitか ページ自体を消した方がよさ下。 &nb ...

file_get_contentsを使用する際にタイムアウト設定

20秒に1回自動でリロードするページにて file_get_contentsを使 ...

PHPの配列をファイルに保存してPHPやJSで呼び出す

PHPの配列をファイルとして保存し、別のページからPHPやJavaScriptで ...

PHPで変数名を動的に変えて使う方法

変数名を動的に変えて使用したかった。 調べてみると可変変数というものがあり、希望 ...

smart_resize_imageで縦横の比率関係なく、固定リサイズ

PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったs ...

no image
PHPで定義した変数の一覧を表示させる

どこで何を定義したか分からなくなった際に 使ったのでメモ。 $array = g ...

PHPで%sとか%dとか

PHPで探し物していて%sとか%dとかいった記述があり 何これとなったのでメモ。 ...