php - 将数据库类传递给构造函数?

标签 php mysql

什么是更好的做法?传递数据库还是打开数据库?当我将数据库传递给构造函数时,我无法执行自动完成 (NetBeans PHP IDE)。

class Item {
    private $name;
    private $database;

    public function __construct($database, $id) {
        $information = $database->fetchSingleRow($id);

        $this->database = $database;
        $this->name = $information['name'];
    }
}

我应该这样做吗

class Item {
    private $name;
    private $database;

    public function __construct($id) {
        $this->database = new Database();
        $this->database->open();
        $this->database->select('test'); // selects test table

        $information = $this->$database->fetchSingleRow($id);
        $this->name = $information['name'];
    }

    public function __destruct() {
        unset($this->item);
        $this->database->close();
    }
}

最佳答案

我个人会将其作为参数传递给构造函数。如果您有很多 Item 实例,每次都会创建一个新连接,这会使您的数据库紧张。

关于php - 将数据库类传递给构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5319826/

相关文章:

php获取数组的数据大小

php - 在特定类别的 MySQL 列中查找具有相同值的行

php - 使用计数器将多行插入表中

php - 使用 PHP 和 AJAX 更新 MySQL 数据库

php - Paypal IPN 在沙盒中有效 在线时无效

php - 为表格中的每个新行显示的表格标题

javascript - 尝试在单选按钮单击时显示 div

php - 如何让PHP和IOS Iphone加密通话?

php - Laravel Eloquent/Fluent 选择每组前 1 行

java - MySQL JDBC 驱动程序未找到错误。在类路径中,已验证