我是新手使用PHP中的类,我刚刚意识到,在我的大多数类方法中,我需要做一些mysql查询。我有另一个类来处理我的连接和查询,但我应该如何从其他类调用该类?如果我的所有类都依赖于我的数据库类,这种方法是否会失败?
答案 0 :(得分:1)
这通常用Singleton或Factory模式解决......
当你需要使用数据库时,你会抢夺应用程序的数据库对象:
$db = Site::getDb(); // singleton
$db->exec('update t set i = i + 1');
getDb返回一个静态实例。
或:
$db = Db::getDb('dsn'); // factory
$db->exec('update t set i = i + 1');
返回静态实例(如果存在),或者为该dsn创建新的db句柄...