我应该将MySQL数据库连接放在PHP函数中吗?
将MySQL数据库连接放在PHP函数中以便其他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;
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调用。这从来都不是好事