Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để sử dụng Kết nối liên tục của PDO?

Câu hỏi này rất cũ nhưng sẽ không sao nếu tôi đóng góp. Tôi nghĩ bạn cần triển khai một lớp singleton để xử lý các kết nối cơ sở dữ liệu, tôi sẽ viết một lớp mẫu bên dưới ..

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

?>

Lớp singleton của chúng ta chỉ có thể tạo một kết nối và sử dụng lại nó, hãy xem cách chúng ta có thể sử dụng lớp của mình

<?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. Khắc phục sự cố Không có tệp hoặc thư mục như vậy khi chạy `php app / console theory:schema:create`

  2. Nhanh chóng xây dựng giao diện CRUD PHP với Công cụ tạo CRUD nâng cao PDO

  3. Mysql_connect mở trong bao lâu?

  4. Mysqldump được khởi chạy bởi cron và bảo mật mật khẩu

  5. nhận ba bản ghi theo thứ tự giảm dần của mỗi danh mục bằng cách sử dụng codeigniter