将我的MySQL数据库连接放在PHP函数中以便其他PHP函数可以使用它是否安全?
答案 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服务器带来良好的性能。