sql >> Databasteknik >  >> RDS >> Mysql

Hur ansluter du effektivt till mysql i php utan att återansluta på varje fråga

Normalt sker anslutningar en gång en sida laddas. 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')");

I princip öppnar du anslutningen i början av sidan, stänger den på slutsidan. Sedan kan du göra olika frågor under sidan och behöver inte göra något åt ​​anslutningen.

Du kan till och med göra mysql_connect i konstruktorn som Erik föreslår.

För att använda ovanstående med globala variabler (föreslås inte eftersom det skapar global status), skulle du göra något liknande

Global $db;

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

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

Åh, och ingen nämnde att du inte behöver skicka runt en parameter. Anslut bara

mysql_connect();

Sedan kommer mysql_query bara att använda den sista anslutningen oavsett omfattningen.

mysql_connect();

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

Enligt kommentarerna:

Du kanske vill överväga om du använder mysql_connect eller mysql_pconnect . Du bör dock fortfarande bara ansluta en gång per skript.



  1. MySQL Tutorial – Konfigurera och hantera SSL på din MySQL-server

  2. Döda automatiskt långvariga frågor (MySql), Apache Tomcat DataSource

  3. Problem med att importera en txt-fil till postgres med php

  4. Hur kan jag upptäcka och binda ändringar mellan radvärden i en SQL-tabell?