Доброе время суток.
Сильно не пинайте, но никак не получается правильно написать класс базы данных с PDO, так чтоб мне самому он понравился.
Предупреждаю, я не программист, только учусь.
Задача:
Написать класс базы данных для безопасного соединения и работы с ним.
Есть 3 таблицы, users, product, order(sample)
Я хочу написать один класс DB в котором будет происходить соединение и где будут методы для работы со ВСЕМИ таблицами, так например чтоб методом select я мог бы запросить как пользователей в таблице users, так и product..
На сегодняшний день, код мой выглядит вот так ужасно: DB_Class.php
class DB_Class
{
protected $db;
function __construct(PDO $db = null){
$dsn ='mysql:host='.DB_HOST.';dbname='.DB_NAME;
$this->db = $db;
try{
if($this->db === null)
{
$this->db = new PDO($dsn, DB_LOGIN, DB_PASS);
}
} catch(PDOException $e){
echo $e->getMessage();
}
}
/// Всякие методы и деструктор.
function __destruct(){
$this->db = null;
}
В классе users вот такая вот порнография:
public function viewUser($where=0,$param = null){
try{
$sql = "";
$select = "SELECT *
FROM users ";
if(!$where=0)
{
$wh ="WHERE id =$param";
$sql = $select.$wh;
}else
{
$sql .= $select;
}
$query = $this->db->prepare($sql);
$query->bindParam(':id',$where);
// var_dump($sql);
// var_dump($where);
$query->execute();
return $query->fetchAll();
} catch(PDOException $e){
$e->getMessage();
}
}
Мне не нравится что сам запрос у меня не в классе ДБ, я хотел бы чтоб все методы подключения были в нем, а классы юзер, продукты только дергали нужные методы и передавали необходимые параметры..
Буду признателен за правильное наставление..