Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

PHP база данных

Ошибка:
Fatal error: Uncaught Error: Call to a member function fetchAll() on bool in E:\OpenServer\domains\steam\config\Database.php on line 34

вот код:
<?php

namespace Core;

use PDO;
use PDOException;

class Database
{
public $connect;

/**
* Database constructor.
*/
public function __construct()
{
try {
$this->connect = new PDO("mysql:host=" . $_ENV["DB_HOST"] . ";dbname=" . $_ENV["DB_NAME"] . ";", $_ENV["DB_USER"], $_ENV["DB_PASSWORD"]);
$this->connect->exec("set names utf8");
}catch (PDOException $e) {
echo "Произошла ошибка следующего типа: " . $e->getMessage();
}
}

public function query(string $sql) : array
{
$query = $this->connect->query($sql);
return $query->fetchAll(PDO::FETCH_CLASS);
}

public function execute(string $sql, ?array $arguments) : array
{
$query = $this->connect->prepare($sql);
$query->execute($arguments);
return $query->fetch(PDO::FETCH_ASSOC);
}
}

По дате
По рейтингу
Аватар пользователя
Мыслитель

Вероятно, $this->connect->query($sql) вернул false, имеющий тип bool, а вы не проверили этого. Вот php и говорит, что нет у типа bool метода fetchAll.