Проблема с PDO

236
15 декабря 2016, 15:49

Здравствуйте, написал маленькую обёртку PDO

class DB extends PDO {
private $engine = 'mysql';
private $host = 'localhost'; // Адрес mysql сервера
private $database = 'qa';        // Название Базы Данных
private $user = 'qa';        // Пользователь 
private $pass = 'qa';        // Пароль
public function __construct() {
    $this->engine = 'mysql'; 
    $this->host = 'localhost';
    $dns = $this->engine.':dbname='.$this->database.";host=".$this->host; 
    parent::__construct( $dns, $this->user, $this->pass );
 }
}

Потом подключаю $db = new DB(); После подключения хочу вытащить кое-что из бд:

$sql = $db->query('SELECT site from site_config');
//Установка fetch mode
$sql->setFetchMode(PDO::FETCH_ASSOC);

Появляется вот такие ошибки:

Warning: PDO::query(): SQLSTATE[00000]: No error: PDO constructor was not called in /home/www-data/www/test/core/data/config.php on line 8

Fatal error: Call to a member function setFetchMode() on a non-object in /home/www-data/www/test/core/data/config.php on line 10

Answer 1

Чтобы была возможность напрямую пользоваться классом, так как делаете это вы, то нужно в конструкторе возвращать instance PDO класса.

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->db = $db;
return $db;
READ ALSO
Подсчет количества дней

Подсчет количества дней

После регистрации пользователю записывается в базу данных (поле date_reg тип DATE) дата регистрации, вот как подсчитать и вывести количество дней...

150
Пустое окно браузера при выводе таблицы из бд MySQL

Пустое окно браузера при выводе таблицы из бд MySQL

Всем добрый день! Ребята,помогите ошибку найти в коде:

166
Открыта сессия, юзер загружает файл, это файл надо прицепить в id юзера

Открыта сессия, юзер загружает файл, это файл надо прицепить в id юзера

Как узнать id пользователя по сессии? $_SESSION['ник пользователя'] можно к нику привязать, но надо к id

187
Необычный MySQL запрос

Необычный MySQL запрос

Здравствуйте!

160