sql >> Databáze >  >> RDS >> Mysql

Jak se efektivně připojíte k mysql v php bez opětovného připojení při každém dotazu

Ke spojení obvykle dochází po načtení stránky. 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')");

V podstatě připojení otevřete na začátku stránky, zavřete ho na konci. Poté můžete během stránky zadávat různé dotazy a nemusíte se spojením nic dělat.

Můžete dokonce provést mysql_connect v konstruktoru, jak navrhuje Erik.

Chcete-li použít výše uvedené pomocí globálních proměnných (není navrženo, protože vytváří globální stav), udělali byste něco jako

Global $db;

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

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

Jo, a nikdo nezmínil, že nemusíte předávat parametr. Stačí se připojit

mysql_connect();

Potom mysql_query použije pouze poslední připojení bez ohledu na rozsah.

mysql_connect();

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

Podle komentářů:

Možná budete chtít zvážit, zda používáte mysql_connect nebo mysql_pconnect . Přesto byste se měli pro každý skript připojit pouze jednou.



  1. Předávání pole ints do T-SQL uloženého procesu prostřednictvím entity framework

  2. Přizpůsobení klávesových zkratek v MySql Workbench

  3. Spuštění databáze RAC se nezdaří s chybou ORA-12547

  4. ROLLBACK TRUNCATE v SQL Server