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

我应该将MySQL数据库连接放在PHP函数中吗?,php,mysql,function,Php,Mysql,Function,将MySQL数据库连接放在PHP函数中以便其他PHP函数可以使用它是否安全?是。这是个好主意 我甚至把我的放在班级里 class database { protected $databaseLink; function __construct($mysql_db, $mysql_user, $mysql_pass, $mysql_dbName){ $this->databaseName = $mysql_dbName;

将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
函数中创建它。如果在同一脚本中有多个其他函数访问db连接,请记住

function get_db()
{
  $db = mysql_connect(...);
  return $db;
}
然后每次调用它时,都会创建并返回一个新连接。最好在类中为每个脚本创建一次,并让class方法将数据库返回到调用它的任何函数的一个连接


EDITNeal的回答实际上很好地展示了这方面的单例模式。请给我一个更完整的答案。

这对性能是一件好事。在调用函数时连接到数据库将为SQL server带来良好的性能。

是否有过程式方法?我还将这样的文件放在web根目录之外,并在需要时包含它,这样,如果PHP没有以某种方式解析,我的凭证就不会被吐出来。@pNUT,因此,您可能会被简化为使用函数。不使用OOP有什么原因吗?@Neal我的大部分代码都是过程式的,我对OOP还不是很了解。例如,如果你的webroot是
/something/www/data/
我将凭据放在
/something/www/db_account.php
中,然后使用类似
的require('../db_account.php')我想在哪里连接到我的DB.EMMM什么?可能会有很多这样的DB调用。这从来都不是好事