電子書籍の厳選無料作品が豊富!

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です

宜しくお願い致します。

A 回答 (2件)

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



http://www.php.net/manual/ja/pdo.connections.php
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/12/19 14:04

エラーメッセージに書かれている通りPDOには disconnect() というメソッドが存在しません。


なので「必要ない」どころかそのような処理は存在しません。

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

参考URL:http://www.php.net/manual/ja/class.pdo.php
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/12/19 14:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!