Как-то так работоспособность не проверял, не где, могут быть ошибки пиши исправим
Если singletone не нужен можно выбросить
<?php
class QueryDB extends PDO{
private static $_instance = null;
private function __construct ($host, $dbname, $username, $pass) {
parent::__construct('mysql:host=' . $host . ';dbname=' . $dbname, $username, $pass);
}
private function __clone(){}
public static function getInstance($configDB){
if (self::$_instance === null) {
self::$_instance = new self($configDB['host'],$configDB['db'],$configDB['user'], $configDB['pass']);
}else{
return self::$_instance;
}
}
protected function getDbObject(){
return $this->_instance;
}
public function select ($query='', $Parametrs=null) {
$pdo = $this->getDbObject();
$sth = $pdo->prepare($query);
if ($sth->execute($Parametrs)) {
return $sth->fetchAll(PDO::FETCH_ASSOC);
}else{
throw new Exception('Запрос не выполнен');
}
}
public function insert($table='', $fields=array()) {
$pdo = $this->getDbObject();
// для наглядности вообще так делать не стоит
$values = 'VAlUES(';
$keys = '(';
foreach($fields as $key=>$val){
$values .=$val . ',';
$keys .=$key . ',';
}
trim($values,',');
$values .= ')';
trim($keys,',');
$keys .= ')';
// конец лапшы
$sth = $pdo->prepare('INSERT INTO `'.$table.'` '. $keys. ' ' .$values );
return $sth->execute();
}
}