sql >> Database teknologi >  >> RDS >> Mysql

Hvordan opretter du effektivt forbindelse til mysql i php uden at oprette forbindelse igen ved hver forespørgsel

Normalt sker forbindelser én gang en side indlæses. 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')");

Som udgangspunkt åbner du forbindelsen i begyndelsen af ​​siden, lukker den på slutsiden. Derefter kan du lave forskellige forespørgsler på siden og behøver ikke at gøre noget ved forbindelsen.

Du kan endda lave mysql_connect i konstruktøren, som Erik foreslår.

For at bruge ovenstående ved hjælp af globale variabler (ikke foreslået, da det skaber global tilstand), ville du gøre noget lignende

Global $db;

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

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

Åh, og ingen nævnte, at du ikke behøver at videregive en parameter. Bare tilslut

mysql_connect();

Derefter vil mysql_query bare bruge den sidste forbindelse, uanset omfanget.

mysql_connect();

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

Ifølge kommentarerne:

Du vil måske overveje, om du bruger mysql_connect eller mysql_pconnect . Du bør dog stadig kun oprette forbindelse én gang pr. script.



  1. IIf()-funktionen vs. IIf()-sætningen

  2. mysqldump virker ikke i crontab

  3. Hvorfor får jeg Kan ikke sende parameter 2 ved referencefejl, når jeg bruger bindParam med en konstant værdi?

  4. Er det bedre at bruge flere databaser med et skema hver, eller en database med flere skemaer?