PHP+MYSQLで登録したレコードに振られるIDを取得する方法は?


テーブルAにデータをinsertした際に、割り振られるIDを取得したいと思っています。IDはauto_incrementにしているintです。
用途は、データを登録した後に、そのデータの詳細ページへのリダイレクトをさせるために、IDを使います。

登録前にシーケンスから割り振られるであろうIDを取得することを考えましたが、ほぼ同時に登録があった場合に大丈夫なのか心配です。

どうすればいいのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/11/29 21:11:42
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:bonlife No.2

回答回数421ベストアンサー獲得回数75

ポイント29pt

横から失礼いたします。

MySQLのMLにて、似たようなやり取りがありました。

またマニュアルにも以下のような記述があります。

最後に生成された ID は、接続ごとにサーバに保持されます。他の接続を使用するクライアントによって変更されることはありません。

参考になれば幸いです。

id:dingding

まさしく同じ悩みだったので、とてもためになりました。

とても納得できました

2006/11/29 21:10:12

その他の回答2件)

id:monkey_punch No.1

回答回数44ベストアンサー獲得回数5

ポイント25pt

mysql_insert_idという関数で

直前にINSERTされたIDを取得できますよ。

http://dev.mysql.com/doc/refman/4.1/ja/mysql-insert-id.html

id:dingding

ありがとうございます。

インサート;

mysql_insert_idをselect;

でこの行の間に他の人が登録していないかどうかは何かロックをかけたりしなくてもいいのでしょうか?

2006/11/29 15:08:01
id:bonlife No.2

回答回数421ベストアンサー獲得回数75ここでベストアンサー

ポイント29pt

横から失礼いたします。

MySQLのMLにて、似たようなやり取りがありました。

またマニュアルにも以下のような記述があります。

最後に生成された ID は、接続ごとにサーバに保持されます。他の接続を使用するクライアントによって変更されることはありません。

参考になれば幸いです。

id:dingding

まさしく同じ悩みだったので、とてもためになりました。

とても納得できました

2006/11/29 21:10:12
id:kurukuru-neko No.3

回答回数1844ベストアンサー獲得回数155

ポイント26pt

自動で番号を割り振る場合の動作について解説が

以下のURLにあります。

接続毎に管理していので同時に処理しても大丈夫

LAST_INSERT_IDの解説

http://dev.mysql.com/doc/refman/4.1/ja/miscellaneous-functions.h...

auto_incrementを定義注意点

http://dev.mysql.com/doc/refman/4.1/ja/example-auto-increment.ht...

id:dingding

ありがとうございました。

2006/11/29 21:10:56

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません