За последние 24 часа нас посетили 21794 программиста и 1010 роботов. Сейчас ищут 673 программиста ...

PDO::FETCH_CLASS возвращает массив вместо объекта

Тема в разделе "PHP и базы данных", создана пользователем voron121, 18 окт 2021.

  1. voron121

    voron121 Активный пользователь

    С нами с:
    18 ноя 2016
    Сообщения:
    29
    Симпатии:
    1
    Доброго времени суток уважаемые форумчане! Есть проблема, решение которой пока что не нашел. В кратце:

    Есть вот такой код:
    PHP:
    1.     public function getProductsByGroupId(int $groupId) : array
    2.     {
    3.         $query = "SELECT id,
    4.                         groupId,
    5.                         name
    6.                    FROM products
    7.                        WHERE groupId = :groupId";
    8.         $stmt = $this->db->prepare($query);
    9.         $stmt->setFetchMode(PDO::FETCH_CLASS, 'Models\Cabinet\Product');
    10.         $stmt->execute(["groupId" => $groupId]);
    11.         return $stmt->fetchAll();
    12.      }
    Метод getProductsByGroupId() должен вернуть массив с объектами класса Product. Локально все ок, а вот на продакшене почему-то не ок и метод возвращает массив с массивами вместо массива с объектами класса Products. Ошибок нет, но результат совсем не тот что ожидается. php.ini и версия php продакшена и локального окружения идентичны, версия mysql так же, параметры примерно стандартные. Уперся и не могу понять что не так-то ?

    Прошу помощи, может кто-нибудь знает куда копать и где искать ошибку ?
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    http://www.php.su/functions/?pdostatement-setfetchmode

    Внимание

    Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.
     
  3. nolispe

    nolispe Новичок

    С нами с:
    23 июн 2021
    Сообщения:
    39
    Симпатии:
    2
    https://www.php.net/manual/en/pdostatement.setfetchmode.php

    Я так понимаю, что уже нет.