MySQL连接:全局还是对象?

Nig*_*awk 6 php mysql database class object

我有两个PHP类.一种是连接数据库,构建查询,执行它们以及断开与数据库的连接.另一个类是供用户使用:添加,更新,登录等.

我在争论是否应该全局连接到页面上的数据库并使用该连接(将数据库对象传递给用户对象的方法),或者我是否应该从用户方法本身内连接和断开数据库.

我看到全局连接的优点是,一旦连接,我就可以使用该连接来执行多种方法.缺点是我需要担心传递数据库对象.

在该方法中连接的优点是它完全透明,但是,可能存在4或5个连接建立和断开,这可能导致开销.

是否有最佳实践使用,或者它真的取决于用户数量和服务器的规格,例如内存,CPU等.系统需要支持多达约1,000个用户,因此它的规模相当小.

任何反馈都将非常感激.

-Ryan

zer*_*kms 1

创建一个函数,根据需要创建连接并提供对连接对象的访问:

function getDb()
{
    static $db;
    if (!$db) $db = ...;
    return $db;
}
Run Code Online (Sandbox Code Playgroud)

包装到类中,这种方法称为Singleton

  • 像这样的函数我称之为陷阱。它们甚至比全局或静态类数据库变量更糟糕。 (2认同)