kleviscipi
11/7/2017 - 12:25 AM

Database mysql connection with PDO

Database mysql connection with PDO

<?php 

class Database {

	private $host 		  = 'localhost';
	private $user 		  = 'username';
	private $password 	  = 'password';
	private $dbname 	  = 'mydb';

	private $dbh;
	private $error;
	private $stmt;

	public function __construct(){
    		//Set dsn
		$dsn = 'mysql:host='.$this->host . ';dbname='.$this->dbname;
    		//Set Options
		$options = [
			PDO::ATTR_PERSISTENT =>true,
			PDO::ATTR_ERRMODE    =>PDO::ERRMODE_EXCEPTION
		];

		try{
			
			$this->dbh = new PDO($dns,$this->user,$this->password,$options);

		}catch(PDOEception $e){
      
			$this->error = $e->getMessage();
      
		}
	}
	
	public function query($query){

		$this->stmt = $this->dbh->prepare($query);
	}

	public function bind($param, $value , $type = null){
		
		if(is_null($type)){
		
			switch(true){
				case is_int($value):
					$type = PDO::PARAM_INT;
				break;
				case is_bool($value):
					$type = PDO::PARAM_BOOL;
				break;
				case is_null($value):
					$type = PDO::PARAM_NULL;
				break;

				default:
					$type = PDO::PARAM_STR;
				break;
			}
		}

		$this->stmt->bindValue($param, $value, $type );
	}
	
	public function execute(){
		return $this->stmt->execute();	
	}
	
	public function result(){
		$this->execute();
		return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
	}
}

$database = new Database;
$database->query('select * from  table where id  = :id');
$database->bind(':id',1);
$row = $database->result();
print_r($row);