sql >> Database >  >> RDS >> Mysql

Hoe maak je efficiënt verbinding met mysql in php zonder bij elke zoekopdracht opnieuw verbinding te maken?

Normaal gesproken vinden verbindingen plaats zodra een pagina wordt geladen. 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')");

Kortom, u opent de verbinding aan het begin van de pagina, sluit deze aan de eindpagina. Vervolgens kunt u tijdens de pagina verschillende vragen stellen en hoeft u niets aan de verbinding te doen.

Je zou zelfs de mysql_connect in de constructor kunnen doen, zoals Erik suggereert.

Om het bovenstaande te gebruiken met globale variabelen (niet voorgesteld omdat het een globale toestand creëert), zou je zoiets doen als

Global $db;

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

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

Oh, en niemand zei dat je geen parameter hoeft door te geven. Gewoon aansluiten

mysql_connect();

Dan zal mysql_query alleen de laatste verbinding gebruiken, ongeacht het bereik.

mysql_connect();

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

Volgens de opmerkingen:

U kunt overwegen of u mysql_connect . gebruikt of mysql_pconnect . U moet echter nog steeds maar één keer per script verbinding maken.



  1. SQLite groeperen op / uren, dagen, weken, jaar tellen

  2. MySQLdb Python voegt %d en %s in

  3. Sluit je aan bij ons in Las Vegas voor SQLintersection en bespaar $ 100

  4. Door komma's gescheiden waarden naar IN-functie in orakel