2017-03-13 37 views
-1

我有以下類處理大部分數據庫查詢,準備語句等。以下僅僅是我所學課程的一個例子。什麼時候應該關閉我的數據庫連接我的類

PHP(database.php中)

class Database{ 

public $mysqli; 


    function __construct(){ 
    // Open the connection to the DB on construct 
    $this->open_connection(); 
    } 

    private function open_connection(){ 
    $this->mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASS, DB_NAME); 
    if(mysqli_connect_errno()){ 
     die("Database connection failed: " . mysqli_connect_error() . " (" . mysqli_connect_errno() . ") "); 
    } 
    } 

    /* 
    * Creates a user 
    */ 
    public function create_user($username, $password){ 
    $stmt = $this->mysqli->prepare("INSERT INTO Users(username,password,dateCreated) VALUES(?,?,NOW())"); 
    $password = $this->hash_password($password); 
    $stmt->bind_param("ss", $username, $password); 
    if(!$stmt->execute()) : 
     $error = "Execute failed: (" . $stmt->errno . ") " . $stmt->error; 
    endif; 
    $stmt->close(); 
    return $error; 
    } 

    // .... 
} 
$db = new Database(); 

因爲我實例在頁面加載每當我需要的是文件類,我應該如何去關閉我的數據庫連接?我可以把它打開嗎?

回答

-1

您可以將其保持打開狀態,因爲只要您的腳本執行完畢,連接就會關閉。該PHP website on mysqli_close提供了爲什麼它的建議仍要關閉連接的以下信息:

打開非持久的MySQL連接和結果集時,一個PHP腳本完成執行的 自動銷燬。因此, 雖然明確關閉打開的連接並釋放結果集是 可選,建議這樣做。這將立即返回 資源到PHP和MySQL,這可以提高性能。有關相關 信息,請參閱freeing resources

+0

但是,這不是很好的風格。它浪費資源 – Psi

+0

我同意你的意見,因爲我曾經建議關閉連接。 :) – Asperitas

+0

對不起,我剛剛讀到:「你可以讓它打開,因爲......」。 – Psi

相關問題