• 締切済み

mysqlのメモリの開放、DB切断について

php,mysqlの勉強をしている初心者です。 mysqlのメモリの開放、DBの切断はselect処理をした時だけでよいのでしょうか? 以下の場合がよくわかりません。 -------------------------------------------------------------------------- (1)select処理を行う (2)(1)で行ったselect処理の値を使いinsert処理を行う (3)(2)の後にmysqlのメモリの開放、DBの切断をしようとするとエラーになってしまいます。 -------------------------------------------------------------------------- どなたかお分かりの方がいましたら教えてください。 よろしくお願いします。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

持続接続を指定して接続を行うのでないのなら、プログラムが終了すれば、自動的に接続は切れます。 あと、pdoやmysqliオブジェクトの場合は、接続保持変数に別なデータを誤って入れちゃうだけでも、接続が切れますよ。質問の仕方レベルからは、そんな状況が目に浮かぶんですけどね。 あと、初心者のやりそうなのは、既にSQLのエラーでfalseが返っていてオブジェクトでは無くなってる変数にオブジェクトとしてアクセスしようとしてるんじゃないか?ここでようやくphpがエラーを返すから。 insertのところでエラーが出てるんだろうけど、sql文のエラーは、ちゃんとプログラムでエラーチェックするようにしないと、とらえられません。

roronoazoro2
質問者

お礼

丁寧なご説明ありがとうございます。 持続接続を指定して接続は行いませんので、自動終了するのですね。 これからも地道に勉強していきたいと思います。

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

1)select 2)insert ここでコミット処理/ロールバック処理したいところですね。 3)メモリ解放。DB切断 データに変更を加えたときはコミットをして完了させる。 またはキャンセルしてもとに戻す。            という処理が必要です。

roronoazoro2
質問者

お礼

コメントありがとうございます。 まだ初心者ですので、コミット処理/ロールバック処理が よくわかりませんのでこれから勉強していきたいと思います。

関連するQ&A