I've taken this class and made it my own but I'm curious to know what other think of it? Are there things I'm missing? Anything you can recommend?
class Database {
private $host = '';
private $user = '';
private $pass = '';
private $dbname = '';
private $dbh;
private $error;
private $stmt;
public function __construct() {
$dsn = 'mysql:dbname=' . $this -> dbname . ';host=' . $this -> host . '';
// Set options
$options = array(PDO::ATTR_PERSISTENT => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
// Create a new PDO instanace
try {
$this -> dbh = new PDO($dsn, $this -> user, $this -> pass, $options);
} catch(PDOException $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;
}
}
$this -> stmt -> bindValue($param, $value, $type);
}
public function execute() {
return $this -> stmt -> execute();
}
public function fetchAll() {
$this -> execute();
return $this -> stmt -> fetchAll(PDO::FETCH_ASSOC);
}
public function fetch() {
$this -> execute();
return $this -> stmt -> fetch(PDO::FETCH_ASSOC);
}
public function rowCount() {
return $this -> stmt -> rowCount();
}
public function countAll($arr) {
return count($arr);
}
public function lastInsertId() {
return $this -> dbh -> lastInsertId();
}
}