sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo se conecta de manera eficiente a mysql en php sin volver a conectarse en cada consulta?

Normalmente, las conexiones ocurren una vez que se carga una página. También conocido como

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')");

Básicamente, abre la conexión al principio de la página, la cierra en la página final. Luego, puede realizar varias consultas durante la página y no tiene que hacer nada en la conexión.

Incluso podrías hacer mysql_connect en el constructor como sugiere Erik.

Para usar lo anterior usando variables globales (no sugerido ya que crea un estado global), haría algo como

Global $db;

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

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

Ah, y nadie mencionó que no tienes que pasar un parámetro. Solo conéctate

mysql_connect();

Entonces, mysql_query solo usará la última conexión sin importar el alcance.

mysql_connect();

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

Según los comentarios:

Es posible que desee considerar si usa mysql_connect o mysql_pconnect . Sin embargo, solo debe conectarse una vez por secuencia de comandos.