如果您想堆叠多个数据库连接,请考虑在构造函数中链接数据库并实例化其中几个类,您可以将它们保存在一个数组中。
例子:
class Database
{
protected $link;
public function __construct($user, $pass, $host) {
$this->link = new Mysqli(/* ... */);
}
public function fetch($query) {
$stmt = $this->link->prepare($query);
/* ... */
}
/* ... */
}
现在将您的数据库放在一个数组中:
$db[0] = new Database('root', 'root', 'server1');
$db[1] = new Database('root', 'root', 'server2');
$db['bigCluster'] = new Database('user01', 'passwd', 'cluster.your.biz');
$result = $db[0]->fetch("SELECT * FROM table");
这样您就可以更好地访问、控制和调试更容易。
说一下你的代码:
function db_fetch_array($query_id = '') { /* .... */ }
此函数接受一个空参数,因此,允许用户从不存在的数据库连接中获取。这会导致错误。不允许!更好的是,输入提示:
public function db_fetch_array(\Mysqli $query_id) { /* .... */ }
一次性解决你所有的问题!
如果您需要按自己的方式使用它,请尝试以下操作,为您提供一个唯一的、可打印的 id 以用作数组键:
$query_id = md5((string)$query_id);
看看 Zend 代码风格指南和现代 PHP 设计模式,这将帮助您将代码质量提高百分之几。