Спасибо, это я понял, а почему возвращается false, как это исправить?
Constantine
Мыслитель
(9723)
Danila Khasanov, откуда ж я знаю? Выводите в случае неудачи информацию об ошибке, а заодно содержимое переменной $sql, и увидите. А если будет что-то неясно, кидайте сюда этот вывод. Ещё можно настроить выбрасывание исключения в случае ошибки. Тогда вместо анализа кода возврата в if надо использовать try/catch, остальное - аналогично.
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);
}
}