2012-03-22 12 views
0

多くのSQLクエリを使い続けなければならない状況がプロジェクトにあります。私はここで2つの質問を持っています。一つは、データベースとの接続を作成した後、私のすべてのWebページを通して永続的なままですか?つまり、クライアントはmySQLサーバーに接続したままです。 yesの場合、すなわち、それゆえセッション変数にmySQLリンク識別子を渡す

$_SESSION['link'] = $link //($link is mysql link identifier) 

とは、それによってのみ、データベースへの接続を1つ持つ、私のWebページ全体でこの変数を使用するセッション変数としてわたしのMySQLリンクIDを保存するための安全なオプションです。私は使用できません

mysql_pconnect(). 

私の2番目の質問は、接続してデータベースに何度も何度も接続し続けることです。それは良い練習ですか?私はmySQLサーバーを使用していますが、アクセスは制限されています。

+0

私は、セッションのデータベースへの参照を保存しないでください。どんな種類のフレームワークを使っていますか?そうでない場合は、[シングルトンパターン](http://php.net/manual/en/language.oop5.patterns.php)を使用することを検討することをお勧めします。 – augustknight

+0

参照:[シングルトンパターン](http:// www.ibm.com/developerworks/library/os-php-designptrns/#N10124) – augustknight

答えて

1

私の意見は、セッションに$linkを保存しようとすると何も勝っても保存しないということです。

各ページデータの読み込み時にSQL Serverに接続する必要があります。ファイルを含めるのと同じです。この変数がセッションに格納されていない場合、同じ変数が返されます。これは、エンドカウントのメモリと同じです。

これは必須です - ページを読み込んだ後、ショーは終了しました:)接続は失われ、セッションの内容だけが残されます。 (はい、DB接続を自動的に閉じるか、ある時間間隔で閉じるか、コマンドを実行するまで待っている場合はウェブホストの設定に依存します)。

ロードされたcontnetをセッションまたはファイルにstotringすることを考えています。その後、外部リソースから接続やデータのロードを保存することができます。

関連する問題