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

Come ti connetti in modo efficiente a mysql in php senza riconnetterti a ogni query

Normalmente le connessioni si verificano una volta caricata una pagina. Alias

class Database{
    public function connect()
    {
         $this->connection = mysql_connect();
    }

    // This will be called at the end of the script.
    public function __destruct()
    {
        mysql_close($this->connection);
    }

    public function function query($query)
    {
        return mysql_query($query, $this->connection);
    }
}
$database = new Database;
$database->connect();

$database->query("INSERT INTO TABLE (`Name`) VALUES('Chacha')");

Fondamentalmente, apri la connessione all'inizio della pagina, la chiudi alla pagina finale. Quindi, puoi fare varie domande durante la pagina e non devi fare nulla per la connessione.

Potresti anche eseguire mysql_connect nel costruttore come suggerisce Erik.

Per utilizzare quanto sopra usando variabili globali (non suggerite in quanto crea uno stato globale), dovresti fare qualcosa del tipo

Global $db;

$db = new Database;
// ... do startup stuff

function doSomething()
{
    Global $db;
    $db->query("Do Something");
}

Oh, e nessuno ha detto che non devi passare un parametro. Connettiti

mysql_connect();

Quindi, mysql_query utilizzerà solo l'ultima connessione, indipendentemente dall'ambito.

mysql_connect();

function doSomething()
{
    mysql_query("Do something");
}

Per i commenti:

Potresti voler considerare se usi mysql_connect o mysql_pconnect . Tuttavia, dovresti comunque connetterti solo una volta per script.