Mysql
 sql >> Database >  >> RDS >> Mysql

Conversione da mysql a mysqli:come ottenere un oggetto di connessione superglobale?

Fare affidamento sul fatto che PHP utilizzerà l'ultima risorsa di connessione aperta se non ne specifichi una, probabilmente non è una buona idea.
Cosa succede se la tua applicazione cambia e hai bisogno di due connessioni, o la connessione non lo è lì?
Quindi sembra che tu debba comunque fare un po' di refactoring.

Ecco una soluzione simile a quella di Karsten che restituisce sempre lo stesso oggetto mysqli.

class DB {
    private static $mysqli;
    private function __construct(){} //no instantiation

    static function cxn() {
        if( !self::$mysqli ) {
            self::$mysqli = new mysqli(...);
        }
        return self::$mysqli;
    }
}        

//use
DB::cxn()->prepare(....