Добрый день! Пытаюсь перепелить подключение БД с mysqli на PDO, на данном этапе вылазит ошибка. Помогите понять в чем проблема.
Ошибка пропала, но запросы не выполняються.
P.S. Заранее спасибо.
class DB {
protected $connection;
public function __construct($host, $user, $password, $db_name){
//$this->connection = new mysqli($host, $user, $password, $db_name);
$this->connection = new PDO('mysql:dbname=news_db;host=localhost', $user, $password);
/*if( mysqli_connect_error() ){
throw new Exception('Could not connect to DB');
}*/
try {
$dbh = $this->connection;
} catch (PDOException $e) {
echo 'Подключение не удалось: ' . $e->getMessage();
}
}
public function query($sql){
if ( !$this->connection ){
return false;
}
$result = $this->connection->query($sql);
/*if ( mysqli_error($this->connection) ){
throw new Exception(mysqli_error($this->connection));
}*/
if ( is_bool($result) ){
return $result;
}
$data = [];
/*while( $row = mysqli_fetch_assoc($result) ){
$data[] = $row;
}*/
while ($row = $result->fetchAll(PDO::FETCH_ASSOC)) {
$data[] = $row;
}
return $data;
}
public function escape($str) {
//return mysqli_escape_string($this->connection, $str);
return $this->connection->quote($str);
}
}
Запрос
public function getByAlias($alias){
$alias = $this->db->escape($alias);
$sql = "select * from pages where alias = '{$alias}' limit 1"; // ошибка здесь или ранее
$result = $this->db->query($sql);
return isset($result[0]) ? $result[0] : null;
}
Класс модели, может понадобится
class Model
{
protected $db;
public function __construct()
{
$this->db = App::$db;
}
}