PHP db连接变量,在多个位置访问的最佳方式
好吧,现在流行的说法是全局变量是坏的 好吧,如果我有:PHP db连接变量,在多个位置访问的最佳方式,php,Php,好吧,现在流行的说法是全局变量是坏的 好吧,如果我有: $dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME); 然后我有几个函数,这些函数都依赖于db连接,在我所有的函数中,访问$dbc最合理的方法是什么 在这种情况下,全球化是可以的吗?在每个函数中将其声明为全局变量似乎是多余的 解决这个问题的最佳方法是什么 在这种情况下,全局变量不会成为问题 另一种解决方法是编写一个存储这些变量的数据库类。这样做的好处是,如果您觉得需要切换到一
$dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
然后我有几个函数,这些函数都依赖于db连接,在我所有的函数中,访问$dbc最合理的方法是什么
在这种情况下,全球化是可以的吗?在每个函数中将其声明为全局变量似乎是多余的
解决这个问题的最佳方法是什么 在这种情况下,全局变量不会成为问题 另一种解决方法是编写一个存储这些变量的数据库类。这样做的好处是,如果您觉得需要切换到一个新的数据库处理程序,比如PDO,那么这将是一个相当简单的任务
<?php
class Database
{
private $host;
private $user;
private $password;
private $dbname;
public function __construct()
{
$this->host = '';
$this->dbname = '';
$this->user = '';
$this->password = '';
}
public function connect() {
return mysqli_connect($this->host, $this->user, $this->password, $this->dbname);
}
}
?>
将来,您可以轻松地:
- 切换到PDO而不用担心大规模重构
- 您可以将连接详细信息注入构造函数
- 使用单例模式存储连接
<?php
class Database
{
private $host;
private $user;
private $password;
private $dbname;
public function __construct()
{
$this->host = '';
$this->dbname = '';
$this->user = '';
$this->password = '';
}
public function connect() {
return mysqli_connect($this->host, $this->user, $this->password, $this->dbname);
}
}
?>
将来,您可以轻松地:
- 切换到PDO而不用担心大规模重构
- 您可以将连接详细信息注入构造函数
- 使用单例模式存储连接