こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHP disconnect()でエラー

WAMP初級者です。
いままでPEAR::DBを使って書いていたサイトがあり、PDOを利用するように書き換えています。
画面が真っ白になる現象に陥り、他の投稿によりご指導いただき、画面にエラーが表示されるようになったものの、エラーの対処方法がわからず、どなたかご指導いただければと思います。

コードを一つずつコメントアウトして画面が真っ白になるポイントをさぐったところ、問題の箇所がみつかりました。(ここをコメントアウトすると画面がちゃんと表示され、コメントアウトしないとエラーのみの白い画面がでてしまいます。)

●問題の記述
$connection->disconnect();

●表示されるエラー
Fatal error: Call to undefined method PDO::disconnect() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test\test2.php on line 406

そもそもこの記述は必要ないのでしょうか?
このページ自体は、あるDBからユーザーが検索をした結果が表示されるページになっていて、
まず、以下のように接続をしています。

// 接続
$connection = new PDO('mysql:host=127.0.0.1;dbname=test_db;charset=utf8','root','root',
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
)
);

そのあと、クエリをくみたて、prepareして、値をbindValueしてexecuteして、テーブルを表示させるようにしています。
不特定多数のユーザーが検索をするので、事が終えたらdisconnectしないとダメなんじゃないかな、と思ってつけてみたんですが。。特に不要なのでしょうか。

初歩的な質問ですみませんが、どなたお助けいただけますと幸いです。
環境はApache/2.2.4 (Win32) PHP/5.4.22です

宜しくお願い致します。

投稿日時 - 2013-12-19 11:50:37

QNo.8392531

すぐに回答ほしいです

質問者が選んだベストアンサー

PHPのマニュアルはご覧になりましたか?

http://www.php.net/manual/ja/pdo.connections.php

投稿日時 - 2013-12-19 12:08:39

お礼

マニュアルを毛嫌いせずに確認すべきでした。
間違いに気づきました。
ありがとうございます。

投稿日時 - 2013-12-19 14:04:34

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

エラーメッセージに書かれている通りPDOには disconnect() というメソッドが存在しません。
なので「必要ない」どころかそのような処理は存在しません。

基本的にはインスタンスが消えるときに接続は切られます。

参考URL:http://www.php.net/manual/ja/class.pdo.php

投稿日時 - 2013-12-19 12:40:44

お礼

ありがとうございます。
PDOでの接続と切断について解説しているどこかのサイトを参考にしたのですが、それが間違っていたようです。。
今後はまずマニュアルを見て、解読できなければ解説サイトをさがすようにします。

投稿日時 - 2013-12-19 14:06:45

あなたにオススメの質問