PHP:处理MySQL连接变量

Ian*_*Ian 2 php variables mysqli globals

创建mysqli对象后,处理$ db_conn变量的最佳方法是什么?

我一直在用

$GLOBALS['_sql'] = new mysqli(...);
Run Code Online (Sandbox Code Playgroud)

但这看起来很脏.我见过的另一种选择是不断地将连接var传递给调用它的每个函数,但这是一个巨大的痛苦.

zom*_*bat 5

我使用我经常调用的Singleton类DatabaseManager.通过调用静态公共方法getDB(),我永远不必担心传递数据库,因为它可以在任何地方使用.这是一个简短的存根:

class DatabaseManager
{
    private static $instance;
    private $db_connection;

    public initDBConnection($connectionInfo) {
          //make connection
    }

    public static function getInstance()
    {
        if (self::$instance == null) {
            $className = __CLASS__;
            self::$instance = new $className();
        }
        return self::$instance;
    }

    public static function getDB() 
    {
         return self::getInstance()->db_connection;
    }

}
Run Code Online (Sandbox Code Playgroud)

初始化数据库连接后,只需调用DatabaseManager::getDB()即可获取数据库连接.

这种方法的优点在于它可以轻松扩展以管理与多个数据库的连接,并确保您永远不会有任何一个数据库连接.使您的连接非常有效.