簡體   English   中英

我應該將MySQL數據庫連接放在PHP函數中嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM