Доброго времени суток. Столкнулась с проблемой, очень простой код, но почему то выдает ошибку и не возвращает результат запроса, уже час луплю в экран,а ошибку найти не могу, вот файл подключения к БД и метод внутри него query
namespace App;
class Db
{
protected $dbh;
public function __construct()
{
$config = (include __DIR__.'/../config.php')['db'];
$options = [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
\PDO::ATTR_EMULATE_PREPARES => false,
];
$dsn = 'mysql:host=' . $config['host'] .'; dbname=' . $config['dbname'];
$this->$dbh = new \PDO($dsn, $config['login'], $config['password'], $options);
}
public function query(string $sql, array $data = [])
{
$sth = $this->dbh->prepare($sql);
$sth->execute($data);
return $sth->fetchAll();
}
}
затем на главной проверяю работоспособность такого банального и простого метода
require_once __DIR__.'/autoload.php';
$db = new \App\Db();
$data = $db->query('SELECT * FROM about');
var_dump($data);
в итоге получаю ошибку Fatal error: Uncaught Error: Call to a member function prepare() on null in Db.php:22
Само подключение создается, ошибок нет.