@mur_steel

Как использовать PDO в рамках собственного класса?

Пытаюсь написать класс - обёртку для более удобной работы с базой
пытаюсь использовать расширение PDO
И сталкиваюсь с такой проблемой:
Fatal error: Class 'asup\PDO' not found in E:\Web\OSPanel\domains\asup.local\vendor\asup\core\Singleton.php on line 24

Расширение PDO установлено:
5f25b702bb35a944164732.png
следовательно вопрос, что я могу сделать для того, что бы избавиться от этой проблемы и реализовать работу с PDO в другом классе
<?php


namespace asup;


class Database extends Singleton
{
    private $dsn;
    private $user;
    private $password;
    private $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    private $pdo;
    private $stmt;

    protected function __construct()
    {
        $this->getConfig();
        $this->pdo = new \PDO($this->dsn,$this->user,$this->password,$this->options);
    }

    protected function getConfig(){
        $conf_array = require_once CONFIG . '/db_config.php';
        $this->dsn = $driver . ':' . 'host=' . $conf_array['host'] . ':' . $conf_array['port'] . ';' . 'dbname=' . $conf_array['db'];
        $this->user = $conf_array['user'];
        $this->password = $conf_array['pass'];
    }

    public function getStates($q = ''){
        $this->stmt = $pdo->prepare('SELECT state FROM states WHERE state = :state ');
        var_dump($this->stmt->execute(array('state' => 'Свердловская область')));
    }
}
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
В константах класса ПДО за тебя слеши кто ставить будет? Пушкин Александр Сергеевич?

Сообщение об ошибке надо всегда читать целиком. В нем написано номер строки, в которой произошла ошибка. Идем в редактор, считаем строчки, смотрим на ошибку.

Сам класс, конечно, полная ерунда.
В классе, который соединяется с БД, не должно быть запросов к данным. Это должно быть в отдельных классах, которые используют класс БД как сервис
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы