什么是数据库连接的最佳实践

用户3787036

我想知道使用PHPOO建立数据库连接的更好方法是什么。

如果我在__construct上设置了连接并在__destruct关闭了连接,我会建立太多无用的连接吗?

例如,我的类称为“ sqlClass”,它具有一些方法。

所以..让我们实例化这个类...

$myObj = new sqlClass(); // mysql_connect and mysql_close executed here...

$myObj->insertData(); // mysql_connect and mysql_close executed here again...

我应该将连接分开吗?

抓紧

1个钉子连接

class sqlClass {
    private $_connection = null;
    public function __construct() {
        $this->_connection = new SomeConnection(array('param1', 'param2', 'param3'));
        }
    public function query($query) {
        return $this->_connection->query();
        }
    }

2增加更多的自由

class sqlClass {
    private $_connection = null;
    public function __construct($params) {
        $this->_connection = new SomeConnection($params);
        }
    public function query($query) {
        return $this->_connection->query();
        }
    }

3.1要么增加懒惰

class sqlClass {
    private $_connection = null;
    private $_params = null;
    public function __construct($params) {
        $this->_params = $params
        }
    public function query($query) {
        if ($this->_connection === null)
            $this->_connection = new SomeConnection($this->_params);
        return $this->_connection->query($query);
        }
    }

3.2要么添加依赖项注入

class sqlClass {
    private $_connection = null;
    public function __construct(SomeConnection $connection) {
        $this->_connection = $connection;
        }
    public function query($query) {
        return $this->_connection->query($query);
        }
    }

4将懒惰移到连接类并使用依赖项注入

class LazyConnection extends SomeConnection{
    private $_params = null;
    private $_inited = false;
    public function __construct($params){
        $this->_params = $params;
        }

    public function query($query){
        if (!$this->_inited){
            parent::__construct($this->_params);
            $this->_inited = true;
            }
        parent::query($query);
        }
    }

使用OOP,您不必手动关闭连接:http : //php.net/manual/en/features.gc.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVC 4中数据库方法的最佳实践

来自分类Dev

数据库公开:最佳实践

来自分类Dev

有关连接句柄重用和数据库用户设计的“最佳实践”是否互斥?

来自分类Dev

访问远程数据库-最佳实践

来自分类Dev

使用null和数据库时的Golang“最佳”实践

来自分类Dev

连接到SQL数据库的最佳实践是什么?

来自分类Dev

数据库数据过滤最佳实践

来自分类Dev

跨多个线程使用静态数据库连接是否是最佳实践?

来自分类Dev

生产数据库架构更新的最佳实践是什么?

来自分类Dev

Laravel数据库日志-最佳实践是什么

来自分类Dev

存储或传递数据库连接的Datomic最佳实践

来自分类Dev

用默认数据填充sqlite数据库时的最佳实践是什么?

来自分类Dev

在Asp.Net MVC 5中实现多个数据库的最佳实践是什么?

来自分类Dev

Java FX中的数据库连接最佳实践

来自分类Dev

连接/断开数据库的最佳实践是什么?

来自分类Dev

递归函数中数据库连接的最佳实践?

来自分类Dev

什么是用于事务聚合的最佳实践数据库设计?

来自分类Dev

数据库连接的最佳方法

来自分类Dev

访问远程数据库-最佳实践

来自分类Dev

连接到SQL数据库的最佳实践是什么?

来自分类Dev

在Google Cloud Infrastructure上扩展数据库/磁盘存储的最佳实践是什么?

来自分类Dev

存储或传递数据库连接的Datomic最佳实践

来自分类Dev

将由多个产品组成的订单插入SQL数据库的最佳实践是什么?

来自分类Dev

Codeigniter:维护多个数据库连接数据的最佳实践是什么?

来自分类Dev

在奥尔良项目中处理关系数据库中的遗留数据的最佳实践是什么?

来自分类Dev

LARAVEL 数据库连接的最佳方式是什么

来自分类Dev

oop php 什么是数据库访问的最佳实践?

来自分类Dev

数据库命名,最佳实践

来自分类Dev

数据库数据重新排列/转换的最佳实践?

Related 相关文章

  1. 1

    MVC 4中数据库方法的最佳实践

  2. 2

    数据库公开:最佳实践

  3. 3

    有关连接句柄重用和数据库用户设计的“最佳实践”是否互斥?

  4. 4

    访问远程数据库-最佳实践

  5. 5

    使用null和数据库时的Golang“最佳”实践

  6. 6

    连接到SQL数据库的最佳实践是什么?

  7. 7

    数据库数据过滤最佳实践

  8. 8

    跨多个线程使用静态数据库连接是否是最佳实践?

  9. 9

    生产数据库架构更新的最佳实践是什么?

  10. 10

    Laravel数据库日志-最佳实践是什么

  11. 11

    存储或传递数据库连接的Datomic最佳实践

  12. 12

    用默认数据填充sqlite数据库时的最佳实践是什么?

  13. 13

    在Asp.Net MVC 5中实现多个数据库的最佳实践是什么?

  14. 14

    Java FX中的数据库连接最佳实践

  15. 15

    连接/断开数据库的最佳实践是什么?

  16. 16

    递归函数中数据库连接的最佳实践?

  17. 17

    什么是用于事务聚合的最佳实践数据库设计?

  18. 18

    数据库连接的最佳方法

  19. 19

    访问远程数据库-最佳实践

  20. 20

    连接到SQL数据库的最佳实践是什么?

  21. 21

    在Google Cloud Infrastructure上扩展数据库/磁盘存储的最佳实践是什么?

  22. 22

    存储或传递数据库连接的Datomic最佳实践

  23. 23

    将由多个产品组成的订单插入SQL数据库的最佳实践是什么?

  24. 24

    Codeigniter:维护多个数据库连接数据的最佳实践是什么?

  25. 25

    在奥尔良项目中处理关系数据库中的遗留数据的最佳实践是什么?

  26. 26

    LARAVEL 数据库连接的最佳方式是什么

  27. 27

    oop php 什么是数据库访问的最佳实践?

  28. 28

    数据库命名,最佳实践

  29. 29

    数据库数据重新排列/转换的最佳实践?

热门标签

归档