0

ファイル: Config.php

<?php
    require 'inc.database.php';
    // Checking if there already a connection. If not then connect to the database.
    if(!$IsConnected){
        $Database = new Database();
        $Database->connect("localhost", "aih786_raheel", "raheel786",        "aih786_basicblog");
        $IsConnected = TRUE;
    }
    ?>

すべてのページでデータベースオブジェクトが必要なため、すべてのページで構成ファイルを使用しています。私が明確にしたいのは、このアプローチにより、同じ接続を何度も行うことはお勧めできないため、データベースへの接続を何度も試行することを避けることができるということです。

私のcmsの最初のページであるログインページがあるとしましょう。接続はログイン ページで開かれ、dashboard.php ページに移動すると、このページにも config.php ファイルが必要になります。これにより、接続とオブジェクトが再度作成されることはありません。

これは私の目標を達成するための正しいアプローチであり、オブジェクト $Database へのアクセスを許可してくれますか? 最初のページで作成されたオブジェクトを別のページで使用できるかどうかはわかりません。

4

2 に答える 2

0

通常、必要なページの読み込みごとに 1 つの接続を起動しようとします。適切な変数が SESSION 変数に既に格納されている場合、多くの場合、変数を起動する必要はありません。

それを考えると、それを呼び出したスクリプトの最後に接続オブジェクトをドロップするのが適切な形式だと思います。

ジャックの言うとおりです。関数を使用して接続を開始します。

function dbConnect_readOnly() {

$host="127.0.0.1";
$user="*********";
$password="********";
$dbname="**********";
try {
        $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
        $DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    }  
catch(PDOException $e) {  
        echo "Unable to connect to database.";  
        file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
    }  
return $DBH;

}

そして閉じる:

function dbClose_connection($DBH) {
        $DBH = null;
    }

セッション変数を確認した直後に、接続を必要とするすべてのページの上部にスクリプトを含めます。

于 2013-10-23T03:16:17.380 に答える