31 lines
		
	
	
		
			799 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			799 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| // Encapsulates a single connection to a database
 | |
| class DBHandle 
 | |
| {
 | |
|     private string $host = '127.0.0.1';
 | |
|     private string $db   = 'test';
 | |
|     private string $user = 'root';
 | |
|     private string $pass = '';
 | |
|     private string $charset = 'utf8mb4';
 | |
| 
 | |
|     public object $dbh;
 | |
| 
 | |
|     public function __construct()
 | |
|     {
 | |
|         try {
 | |
|             $this->dbh = $this->connectWithMySQL();
 | |
|         } catch (PDOException $e) {
 | |
|             throw new PDOException($e->getMessage(), (int)$e->getCode());
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private function connectWithMySQL(): object 
 | |
|     {
 | |
|         $dsn = "mysql:host=$this->host;dbname=$this->db;charset=$this->charset";
 | |
|         $options = [
 | |
|             PDO::ATTR_PERSISTENT => true,
 | |
|         ];
 | |
|         return new PDO($dsn, $this->user, $this->pass, $options);
 | |
|     }
 | |
| } |