Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como você se conecta eficientemente ao mysql em php sem reconectar em cada consulta


Normalmente as conexões acontecem uma vez que uma página é carregada. AKA
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')");

Basicamente, você abre a conexão no início da página, fecha na página final. Então, você pode fazer várias consultas durante a página e não precisa fazer nada na conexão.

Você pode até fazer o mysql_connect no construtor como Erik sugere.

Para usar o acima usando variáveis ​​globais (não sugeridas, pois cria um estado global), você faria algo como
Global $db;

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

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

Ah, e ninguém mencionou que você não precisa passar um parâmetro. Basta conectar
mysql_connect();

Então, mysql_query usará apenas a última conexão, não importa qual seja o escopo.
mysql_connect();

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

Pelos comentários:

Você pode querer considerar se você usa mysql_connect ou mysql_pconnect . No entanto, você ainda deve se conectar apenas uma vez por script.