[MySQL][php] updateしたIDを知りたい場合はLAST_INSERT_ID()を使う

公開

スポンサーリンク

phpのmysql_insert_id()は直近のクエリーによりAUTO_INCREMENTカラムで生成されたIDを取得する。で、updateを行った後にIDを知りたくてmysql_insert_id()を使ってみたが、IDは返って来なかった。当たり前か。

UPDATEで変更されたIDを知りたい場合、MySQL関数のLAST_INSERT_ID()を使う。

$sql = "UPDATE table_name SET column = 'new value' WHERE column = 'old value'";
$result = mysql_query( $sql );

echo mysql_insert_id();// -> 0

$sql = 'SELECT LAST_INSERT_ID() AS id FROM table_name';
$result = mysql_query( $sql );
$a = mysql_fetch_array( $result );
echo $a['id'];// -> 3

これでOK。

スポンサーリンク


Comment