31 lines
		
	
	
		
			958 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			958 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| // Encapsulates a single connection to a database
 | |
| class DBHandle 
 | |
| {
 | |
|     private string $host    = CONFIG['database']['args']['host'];
 | |
|     private string $db      = CONFIG['database']['args']['database'];
 | |
|     private string $user    = CONFIG['database']['args']['user'];
 | |
|     private string $pass    = CONFIG['database']['args']['password'];
 | |
|     private string $charset = CONFIG['database']['args']['charset'];
 | |
| 
 | |
|     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);
 | |
|     }
 | |
| } |