PDO具有可重用连接池

时间:2014-01-22 11:18:27

标签: php database pdo database-connection persistent-connection

我创建了一个类(名为DBPDO扩展标准PDO 类(class DBPDO extends PDO {}),以便拥有PDO附带的所有方法和属性添加对查询的更多控制(即开发时的分析等等)以及允许在编码查询时加快工作的方法。

我想改进这门课程。我正在考虑在整个网站中创建的所有连接,最重要的是在不同的范围内创建以执行独立查询。所以我想知道:为什么我要创建ie。在我的应用程序的5个不同方法/类/函数上有5个连接,当我可以在所有这些连接上使用相同的连接时?

我不想使用持久连接(例如阅读What are the disadvantages of using persistent connection in PDO)。

我只想要一个类 - 当实例化时 - 给我一个已经有效的连接,如果存在,或者给我一个新的连接。
但是有一个问题。如果我必须访问查询结果并在每个结果处执行另一个查询,该怎么办?我一定需要两个不同的连接。所以如果我想要一个全新的连接或一个用过的连接,我需要告诉这个新课程。

我正在考虑使用静态方法PDOConn和静态私有属性getConnection($forceNew = false) {}编写新的类$Connections = array()

当我需要连接时,我写道:

$dbh = PDOConn::getConnection();

PDOConn将查看$Connections是否已包含至少一个连接(以我已经工作的DBPDO类的实例的形式)并重新计算该对象。如果$Connections为空,则会创建一个新对象(DBPDO的实例),将该对象添加到$Connections并返回它。

如果我想强制创建新连接,我会写:

$dbh = PDOConn::getConnection(true);

因此,它将创建一个新连接并将其添加到$Connections。如果再次调用getConnection而不强制新创建,PDOConn将返回第一个创建的连接(或者可能是最后一个?)。

问题
你认为这是一个好方法,一个好主意吗?你有更好的建议吗?最重要的是:你认为我的PDOConn类功能中没有考虑到的东西可能会导致我现在没有弄清楚的问题吗?您是否认为编写类似的课程值得管理PDO连接?我的意思是,我开始使用这个线程,因为我想在不需要创建新连接时重用连接:这是值得/相关的还是我可以继续创建我想要的连接数量,这没关系?

谢谢。

0 个答案:

没有答案