最終レコード番号を取得する
MYSQLでレコード追加直後に追加した番号が必要になる時があるのでメモ
PHPで取得する場合
$query = 'insert into table_name ...'; //追加するSQL文
$result = mysql_query($query);//追加クエリ実行
$last_id = mysql_insert_id();//追加したクエリのレコード番号取得
BIGINTの場合は、無理矢理 int に変換された値を返すためNG。
MySqlで取得する場合
$query = 'insert into table_name ...'; //追加するSQL文
$result = mysql_query($query);//追加クエリ実行
$query = 'SELECT LAST_INSERT_ID() FROM テーブル名';
$result = mysql_query($query);
$row = mysql_fetch_array($result);//追加したクエリのレコード番号取得
//番号を取り出す
$lastNo = $row[0];//この行で番号を取得
BIGINTの事もあるのでこっちで取得したほうが記述はめんどいが無難なのかな
ちなみに$rowの構造は
$row[0] = 最終レコード番号
$row['last_insert_id()']= 最終レコード番号
となっていた。
しかし$row['last_insert_id()']のほうを使用したらなぜか値が取れなかった....ナゼダ..
引用させていただいたURL
MySQLのAUTO_INCREMENTで生成された値を簡単に取得する方法
PHPで取得する場合
$query = 'insert into table_name ...'; //追加するSQL文
$result = mysql_query($query);//追加クエリ実行
$last_id = mysql_insert_id();//追加したクエリのレコード番号取得
BIGINTの場合は、無理矢理 int に変換された値を返すためNG。
MySqlで取得する場合
$query = 'insert into table_name ...'; //追加するSQL文
$result = mysql_query($query);//追加クエリ実行
$query = 'SELECT LAST_INSERT_ID() FROM テーブル名';
$result = mysql_query($query);
$row = mysql_fetch_array($result);//追加したクエリのレコード番号取得
//番号を取り出す
$lastNo = $row[0];//この行で番号を取得
BIGINTの事もあるのでこっちで取得したほうが記述はめんどいが無難なのかな
ちなみに$rowの構造は
$row[0] = 最終レコード番号
$row['last_insert_id()']= 最終レコード番号
となっていた。
しかし$row['last_insert_id()']のほうを使用したらなぜか値が取れなかった....ナゼダ..
引用させていただいたURL
MySQLのAUTO_INCREMENTで生成された値を簡単に取得する方法