PHP PDO fetchAll() для логического значения

я пытаюсь написать свой собственный класс-оболочку PDO, мои операторы всегда возвращают true, и я ничего не могу получить.

Вот мой DB класс

class DB {

private $db;
private $host = "localhost";
private $database = "test";
private $user = "test";
private $password  = "test";

public function __construct(){
    try {
        $this->db = new \PDO("mysql:host = " . $this->host . ";dbname = " . $this->database, $this->user, $this->password);
        $this->db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
    } catch (\PDOException $error) {
        die("Verbindung zur Datenbank fehlgeschlagen: <br>" . $error);
    }
}

public function run($sql, $args = []){
    try{
        $stmt = $this->db->prepare($sql);
        $result = $stmt->execute($args);
        return $result;
    } catch(\PDOException $error) {
        die("Fehler bei Datenbankabfrage: <br>". $error);
    }
}
}

И здесь я создаю новый экземпляр своего класса и пытаюсь получить данные

$DB = new DB();
$data = $DB->run("SELECT * FROM testtbl")->fetchAll();

Без fetchAll() он возвращает true, а с ним выдает ошибку в моем error.log

PHP Fatal error: Uncaught Error: Call to a member function fetchAll() on boolean

Было бы неплохо, если бы кто-нибудь мог мне помочь.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
735
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

PDOStatement::execute просто возвращает логическое значение, указывающее, успешно ли выполнен запрос. Вам нужно вызвать fetchAll в операторе, поэтому вместо

return $result;

Вы должны иметь

return $stmt;

Другие вопросы по теме