dポイントプレゼントキャンペーン実施中!

PHP5と、SQLite3の組み合わせです。

$conn = new PDO($dsn,$user,$pass);

とした場合の$conn をそのファイル中で使い回ししているのですが、
これって問題ありますでしょうか?
(ここで登場するDBは、1つだけです。)

つまり、

$conn = new PDO($dsn,$user,$pass);

//======
(1)$connを使い、DBからデータ抽出~~
//======
(2)$connを使い、DBへデータ挿入~~
//======

ということをしているわけです。
(ある1つのDBに対し、異なる「DBアクセス」をしているわけです。)

正しくは、下記のようにすべきなのでしょうか?

$conn = new PDO($dsn,$user,$pass);
//======
(1)$connを使い、DBからデータ抽出~~
//======
unset($conn);

//---------------------------

$conn = new PDO($dsn,$user,$pass);  //上のunset()は必要ないですね。
//======
(2)$connを使い、DBへデータ挿入~~
//======
unset($conn);

この辺りのことについて、どなたか教えてください。
宜しくお願い致します。

A 回答 (2件)

大丈夫です!



例外的な場面もあるでしょうが、基本的には使い回す方が良いでしょう。

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

お礼が遅くなり、申し訳ございませんでした。
参考URL、大変参考になりました。
ありがとうございます。

お礼日時:2010/12/01 20:22

こんにちは。



どちらが正しいというものではありません。
別々のコネクションにした方がいい(または、するべき)か、同じコネクションでいいのか、だけの問題です。
SQLiteなのであまり気にしなくていいのかも知れませんが、普通はデータベースにコネクションを張る事自体が大きなオーバーヘッドであって、一番のボトルネックになる可能性が高い部分です。
そのために、コネクションプーリングなどを使って、努力しているシステムも多いですから・・・。
PHPがブラウザからリクエストを受け取って、ブラウザにレスポンスを返すまでの間、特に問題がないのなら、同じコネクションを使いまわす方が、上記の理由から好ましいとは思います。
    • good
    • 0
この回答へのお礼

お礼が遅くなり、申し訳ございませんでした。
分かりやすい回答をどうもありがとうございました。

お礼日時:2010/12/01 20:23

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