[英]Do I need a php mysql connection in each function that uses database?
[英]Should I Place My MySQL Database Connection Inside A PHP Function?
將我的MySQL數據庫連接放在PHP函數中以便其他PHP函數可以使用它是否安全?
是。 這是一個好主意。
我什至把我放在一堂課上。
class database {
protected $databaseLink;
function __construct($mysql_db, $mysql_user, $mysql_pass, $mysql_dbName){
$this->databaseName = $mysql_dbName;
$this->database = $mysql_db;
$this->mysql_user = $mysql_user;
$this->mysql_pass = $mysql_pass;
$this->openConnection();
}
function openConnection(){
$this->databaseLink = mysql_connect($this->database, $this->mysql_user, $this->mysql_pass);
mysql_select_db($this->databaseName, $this->databaseLink);
}
function get_link(){
return $this->databaseLink;
}
}
然后,您可以執行以下操作:
$db = new database('database', 'username', 'password', 'dbName');
//to do a query:
mysql_query("some query", $db->get_link());
您可能不想在常規的PHP function
創建它。 如果您將有多個其他功能在同一腳本中訪問數據庫連接,請記住,如果執行類似
function get_db()
{
$db = mysql_connect(...);
return $db;
}
然后,每次調用它時,都將創建並返回一個新的連接。 最好在類中以Singleton的形式在每個腳本中創建一次,並讓類方法將數據庫返回到任何調用它的函數的連接。
編輯尼爾的答案實際上很好地說明了單例模式。 用更完整的代碼來擊敗我。
對性能來說是一件好事。 僅在調用函數時連接到數據庫,這對於SQL Server會產生良好的性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.