PHP/MySQL:如何在对象中创建/访问一个数据库连接?

PHP/MySQL:如何在对象中创建/访问一个数据库连接?,php,mysql,Php,Mysql,我正在做一个项目,我有几个不同的类需要连接到MySQL数据库。我的问题是如何从实例化的类内部高效地完成这项工作。我读过,打开和关闭多个连接是一个坏主意,使用globals也不是一个好选择。。。那么还有什么其他选择呢?在这种情况下,是否有访问数据库的标准或最佳实践?我仍然是一个初级程序员。建立一个连接,然后将该连接对象传递给每个需要它作为构造函数参数的类 class myClass { function __construct($db) { $this->db = $db; }

我正在做一个项目,我有几个不同的类需要连接到MySQL数据库。我的问题是如何从实例化的类内部高效地完成这项工作。我读过,打开和关闭多个连接是一个坏主意,使用globals也不是一个好选择。。。那么还有什么其他选择呢?在这种情况下,是否有访问数据库的标准或最佳实践?我仍然是一个初级程序员。

建立一个连接,然后将该连接对象传递给每个需要它作为构造函数参数的类

class myClass {

 function __construct($db) {
  $this->db = $db;
 }
 function doStuff($someQuery) {
  $result = $this->db->query($someQuery);
  // fetch data here...
  return $someData;
 }
}
然后


请在这里上传您的代码。好的,那么当我将连接作为参数传递时,它将作为原始连接的引用传递,是吗?这正是发生的事情我认为如果我为我的数据库连接创建了一个类并将对象作为参数传递,这同样有效?这将取决于你创建的类,但原则上应该是好的。你能扩展一下吗?如果我创建一个类,我是否应该创建一个静态类,这样我就可以确保该类只有一个实例?你会说创建一个类是一个更好的选择,还是仅仅像你在回答中指定的那样创建一个普通的连接?是否存在任何不利因素,例如安全问题或其他问题?
$db = new mysqli($host, $user, $password, $dbname);
$someObject = new myClass($db);
$data = $someObject->doStuff($myQuery);