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

Jak korzystać z trwałego połączenia PDO?

To pytanie jest bardzo stare, ale będzie dobrze, jeśli się podzielę. Myślę, że musisz zaimplementować klasę singletona do obsługi połączeń z bazą danych. Poniżej napiszę przykładową klasę ..

<?php
class DB{

//set the connection property to private to prevent direct access 
private static $conn;

//now since we dont want to reinstiate the class anytime we need it, lets also set the constructor to private 
private function __construct(){}

//now lets create our method for connecting to the database 
public static function connect(){

//now lets check if a connection exists already in our $conn property, then we should return it instead of recreating a new connection 
if(!empty(self::$conn)){
return self::$conn;
}//end if 

//upon reaching here means the $conn property is empty so lets create a new connection 

try {
 $dbh = new PDO('mysql:host=127.0.0.1;dbname=lingtong', 'root', 'xxxxxx', array(PDO::ATTR_PERSISTENT => true));

//lets now assign the database connection to our $conn property 
self::$conn = $dbh;

//return the connection 
return $dbh;

} catch (PDOException $e) {
 print "Error! : " . $e->getMessage() . "<br/>";
 die();
}

}//end method 

}//end class

?>

Nasza klasa singleton może nawiązać tylko jedno połączenie i wykorzystać je ponownie, zobaczmy, jak możemy wykorzystać naszą klasę

<?php 
$dbh = DB::connect();

foreach ($dbh->query('SELECT * from agent') as $row){ 
  print_r($row);
}
?>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd składni MySQL. Nie mogę tego rozwiązać

  2. Jak porównać dwa pola/kolumny w warunku?

  3. Jak tworzyć pliki językowe Codeigniter z bazy danych?

  4. Średnia danych z każdych 5 minut w podanych czasach

  5. Błąd MySQL:Nie można załadować wtyczki uwierzytelniania „caching_sha2_password”