0
我是veeery在PHP
新,我試圖做這個簡單的任務:從MySql
數據庫中獲取數據。每次我需要的東西時創建新的mysql連接對象
我做了一個單例類數據庫comunicate:
class Database {
private static $db = null;
private $servername;
private $username;
private $password;
private $connection;
private function Database(){
$this->servername = "localhost";
$this->username = "user";
$this->password = "123456";
}
public static function get_database(){
if(!static::$db){
static::$db = new Database();
}
return static::$db;
}
function start_connection(){
$this->connection = new mysqli($this->servername,
$this->username,
$this->password);
}
function execute_query($query){
$this->start_connection();
[...]
$this->disconnect();
}
function disconnect(){
$this->connection->close();
}
[...]
}
該代碼可以正常使用,但有一件事困擾着我。我想知道是否真的需要創建一個新的連接對象,new mysqli()
,每次我撥打start_connection()
。有什麼像reconnect
?
這完全取決於你。大多數人只是在構造函數中連接到數據庫一次,然後重新使用該連接的一切。但一般來說,如果您需要使用不同憑據訪問數據庫,那麼您只需要多次連接到數據庫。 –
你有沒有聽說過「單身」模式?也許你可以在你的數據庫類中使用類似的東西。 – Mindastic
爲什麼不將mysqli對象存儲在靜態$ db變量中並在get_database()函數中初始化一次?這樣你總是可以使用這個單一的連接。 – FLXN