Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak skutecznie połączyć się z mysql w php bez ponownego łączenia się przy każdym zapytaniu?

Zwykle połączenia mają miejsce po załadowaniu strony. alias

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')");

Zasadniczo otwierasz połączenie na początku strony, zamykasz je na stronie końcowej. Następnie możesz wykonywać różne zapytania na stronie i nie musisz nic robić z połączeniem.

Możesz nawet wykonać mysql_connect w konstruktorze, jak sugeruje Erik.

Aby użyć powyższego przy użyciu zmiennych globalnych (nie sugerowane, ponieważ tworzy stan globalny), należy zrobić coś takiego

Global $db;

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

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

Aha, i nikt nie wspomniał, że nie musisz przekazywać parametru. Po prostu podłącz

mysql_connect();

Wtedy mysql_query użyje tylko ostatniego połączenia, bez względu na zakres.

mysql_connect();

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

Zgodnie z komentarzami:

Możesz rozważyć, czy używasz mysql_connect lub mysql_pconnect . Jednak nadal powinieneś łączyć się tylko raz na skrypt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pojawia się język arabski w php/mysql ???? znaki zapytania w html

  2. Kłopoty z podjęciem decyzji o identyfikacji lub braku identyfikacji relacji

  3. Błąd połączenia C# MySQL SSL podczas próby użycia conn.Open()

  4. UTF-8 przez całą drogę

  5. Typ MySQL do przechowywania roku:Smallint czy Varchar czy Data?