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行目の実行は別の接続なのではないのかなと考えてしまうのですが、いかがでしょうか?
2回にわたって実行する形で問題ありませんし、それしか出来ません。
「接続ごとに」、というのは「mysql_connect を実行するごとに」、と読み替えると分かりやすいかもしれません。
2回のクエリを実行している間もコネクションは接続されたままなので問題ないのです。
なお、同じ接続内でのクエリの実行回数については特に制限はありません。
2回にわたって実行する形で問題ありませんし、それしか出来ません。
「接続ごとに」、というのは「mysql_connect を実行するごとに」、と読み替えると分かりやすいかもしれません。
2回のクエリを実行している間もコネクションは接続されたままなので問題ないのです。
なお、同じ接続内でのクエリの実行回数については特に制限はありません。
mysql_closeで明示的に閉じなくても、確か閉じられるというあいまいな記憶で、コネクションが切れているのかと思っていました。
確認したら、コネクションが切れるのは、全体が終わってからだったんですね。
ありがとうございます。
例 1及び、注意の解説がご回答になると思います。
mysql_insert_id
ありがとうございました。
mysql_closeで明示的に閉じなくても、確か閉じられるというあいまいな記憶で、コネクションが切れているのかと思っていました。
確認したら、コネクションが切れるのは、全体が終わってからだったんですね。
ありがとうございます。