人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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行目の実行は別の接続なのではないのかなと考えてしまうのですが、いかがでしょうか?

●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:AS MySQL PHP SELECT SQL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●40ポイント ベストアンサー

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


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

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

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

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

◎質問者からの返答

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

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

ありがとうございます。


2 ● kurukuru-neko
●30ポイント

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

mysql_insert_id

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ