Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам постоянна връзка на PDO?

Този въпрос е много стар, но ще е добре, ако допринеса. Мисля, че трябва да внедрите единичен клас за обработка на връзки към база данни. Ще напиша примерен клас по-долу..

<?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

?>

Нашият единичен клас може да направи само една връзка и да я използва повторно, нека видим как можем да използваме нашия клас

<?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. Най-добра практика за мигриране на данни от MySQL към BigQuery

  2. множество INSERT и запазване на сигурността на подготвените заявления за PDO

  3. Премахнете всички нечислови знаци от поле

  4. MySQL разграничение между e и é (e acute) - УНИКАЛЕН индекс

  5. CAST DECIMAL към INT