http://jp.php.net/manual/ja/function.mysql-insert-id.php
PHP: mysql_insert_id - Manual
これで取得できます。
Yahoo! JAPAN
URLはダミーで。
直前のIDを取得するにはPHPの
mysql_insert_id関数を使用します。
例:
$query = ”insert into hoge values(’’,’hoge’,12345)”;
$rs = mysql_query($query);
$id = mysql_insert_id();
既出ですが、サンプルコードが入ってて有用なのでポイント付けさせて頂きます。ありがとうございます!
登録する直前のIDを取得して、それに手動でインクリメントした値を表示する、という方法ではダメですか?
あ、それ上手いですね!でも、やはり最初の回答と同じ、同時発生している他の処理との混同が気になります。
LAST_INSERT_ID()を使ってみてはいかがでしょうか?
データを登録した際に、接続を切らず連続して、
SELECT LAST_INSERT_ID();
を発行すればよいかと思います。
上記URLの中ほどやや下に説明がありました。
ありがとうございます。やはり疑問点は、前に同じです。
2度目の回答です。
同時発生している他の処理との混同が気になるとの事なので。
この回答に対するポイントはいらないです。
MySQLサーバはクライアントからの接続要求があるとスレッドを生成し、そのスレッドがクライアントのSQLを処理します。
最後に生成されたIDはスレッドごとにサーバに保持されます。
その為、確実に自分が最後に生成したIDを返してくれます。
なるほど!疑問が解決しました。ポイント不要との事ですが、当然お付けします。非常に分かりやすい回答を有難うございました。
おお、完璧っぽいです。これ、複数ユーザーによる処理が同時発生してる場合でも、正確に自分のスクリプトが直近に処理したIDを返してくれるんでしょうか?