2013-10-23 41 views
0

文件:config.php文件避免多次attemps到的mysql_connect

<?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?我不確定我們是否可以在第一頁上創建的頁面上使用不同頁面上的對象。

+0

什麼是數據庫?它在哪裏定義?偉大的工作,選擇你的密碼btw。 –

+0

它是類'inc.database.php'它cosntains連接和crud方法..和密碼大聲笑:P它只是假的 –

回答

0

一個非常基本的方法是定義返回點播數據庫連接的功能,例如:

function getDefaultDatabaseConnection() 
{ 
    $db = new Database; 
    $db->connect(...); 

    return $db; 
} 
+0

但爲此我必須每次調用此函數? –

+0

@RameezShah你只需要時就可以打電話給你。 –

+0

所以我需要每個頁面上的數據庫連接,我也可以使用我的方法呢? –

0

通常情況下,我試着火了每一個需要它的頁面加載一個連接。 如果我已經將適當的變量存儲在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; 
    } 

包括在每一個電火工品,你檢查的會話變量剛過連接頁面頂部的腳本。