2

多年来,我主要从事程序性编程,并试图围绕 OOP 和 PDO 进行研究。我已经开始将我编写的应用程序转换为使用类而不是独立函数(这是一场噩梦,但我认为这将是值得的......)并且想使用 PDO 而不是常规mysql_*函数。我有点坐在我的裤子座位上飞行,只是边学习边学习,我不确定我应该如何处理 PDO 对象。

我知道每次我需要进行查询时创建一个新的 PDO 对象是愚蠢的,所以我可以看到两种方式:

  1. 在每个类中创建一个 PDO 对象(即每次创建一个对象时,调用一个成员函数创建一个 PDO 供其使用)。
  2. 在我的应用程序开始时创建 PDO 对象并将其传递给创建的每个对象的构造函数,并且所有对象共享 PDO 对象。

做这个的最好方式是什么?

谢谢你的建议!

4

2 回答 2

2

不要多做一个。尝试管理所有数据库连接会发疯。

一个好的解决方案是创建一个用于数据访问的单例对象,并在您想要使用数据库时通过它的静态访问器方法检索它。这样一来,您就只有一个地方可以管理 DB 访问和 PDO。如果你想要更多的MVC,你也可以把所有的 SQL 代码放在那里。

于 2012-07-06T15:40:02.947 回答
1

根据应用程序的大小,您可能希望使用Singleton来处理数据库连接。本质上,这将是一个包装您的数据库连接并具有将返回您的 PDO 对象的静态函数的类。然而,因为它是一个单例,它只会创建一个(假设你不让它更复杂)。这使您不必连续创建对象,也不必将一个对象传递给所有对象,从而将持久性与业务逻辑正确分离。

于 2012-07-06T15:41:08.330 回答