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);