PHP+MYSQLでLAST_INSERT_IDについて。


http://q.hatena.ne.jp/1164779724
上のURLで一度質問して解決したような気がしたのですが、気になることがあるので、再度質問させてください。

以下のようなコードでいいのでしょうか?
1行目:$ins_sql="インサート";
2行目:$ins_rs = mysql_query($ins_sql);
3行目:$select_sql = "SELECT LAST_INSERT_ID() as last_id";
4行目:$select_rs = mysql_query($select_sql);

当初、1行目のSQL と3行目のSQLを一つの文字列にして、実行させるのかと思っていたのですが、どうもうまくいかないようです。

このようにSQLを一度に処理しないで、上のサンプルのように2回に分けて処理した場合でも、自分が登録したIDが必ず取得できるのでしょうか?

「接続ごとに管理している」と言った場合の「接続」と言うのは、データベースへの接続だと思うのですが、
その場合、上のサンプルでは、2行目の実行と、4行目の実行は別の接続なのではないのかなと考えてしまうのですが、いかがでしょうか?

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

ベストアンサー

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント40pt

2回にわたって実行する形で問題ありませんし、それしか出来ません。


「接続ごとに」、というのは「mysql_connect を実行するごとに」、と読み替えると分かりやすいかもしれません。

2回のクエリを実行している間もコネクションは接続されたままなので問題ないのです。

なお、同じ接続内でのクエリの実行回数については特に制限はありません。

http://php3.de/manual/ja/function.mysql-connect.php

id:dingding

mysql_closeで明示的に閉じなくても、確か閉じられるというあいまいな記憶で、コネクションが切れているのかと思っていました。

確認したら、コネクションが切れるのは、全体が終わってからだったんですね。

ありがとうございます。

2006/12/01 04:18:13

その他の回答1件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440ここでベストアンサー

ポイント40pt

2回にわたって実行する形で問題ありませんし、それしか出来ません。


「接続ごとに」、というのは「mysql_connect を実行するごとに」、と読み替えると分かりやすいかもしれません。

2回のクエリを実行している間もコネクションは接続されたままなので問題ないのです。

なお、同じ接続内でのクエリの実行回数については特に制限はありません。

http://php3.de/manual/ja/function.mysql-connect.php

id:dingding

mysql_closeで明示的に閉じなくても、確か閉じられるというあいまいな記憶で、コネクションが切れているのかと思っていました。

確認したら、コネクションが切れるのは、全体が終わってからだったんですね。

ありがとうございます。

2006/12/01 04:18:13
id:kurukuru-neko No.2

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

ポイント30pt

例 1及び、注意の解説がご回答になると思います。

mysql_insert_id

http://www.php.net/manual/ja/function.mysql-insert-id.php

id:dingding

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

2006/12/01 04:15:54

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

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

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

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

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