我应该将我的MySQL数据库连接放在PHP函数中吗?

时间:2011-05-13 14:16:13

标签: php mysql function

将我的MySQL数据库连接放在PHP函数中以便其他PHP函数可以使用它是否安全?

3 个答案:

答案 0 :(得分:9)

是。这是一个好主意。

我甚至把我放在一个班上。

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());

答案 1 :(得分:1)

您可能不希望在常规PHP function中创建它。如果您在同一个脚本中有多个其他函数访问数据库连接,请记住,如果您执行类似

的操作
function get_db()
{
  $db = mysql_connect(...);
  return $db;
}

然后每次调用它时,您将创建并返回一个新连接。最好在类中为每个脚本创建一次Singleton,并使用类方法将数据库连接回任何调用它的函数。

编辑 Neal的回答实际上很好地展示了单身模式。用更完整的代码完整答案打败我。

答案 2 :(得分:0)

这对表现来说是件好事。只在调用函数时连接到数据库,它将为SQL服务器带来良好的性能。