PDO возвращает все значения NULL для столбцов? - PullRequest
0 голосов
/ 17 мая 2018

У меня здесь странная проблема, и я надеюсь, что у кого-то есть решение.Как указано в вопросе, MySQL возвращает данные, но все значения NULL.

Вот запрос:

public function getPort($id) {
    $sql = "SELECT c.id, c.port as number, d.type, d.spec, d.transfer as speed
            FROM details a
            LEFT JOIN port_to_drive b ON a.drive_id = b.drive_id
            LEFT JOIN port c ON b.port_id = c.id
            LEFT JOIN port_type d ON c.port_type = d.id
            WHERE a.id = $id";

    $stmt = $this->db->query($sql);

    return $stmt->fetchObject();
}

Я пытаюсь вернуть объект, но также пыталсявозвращает массив и результат тот же.

Вот что он возвращает:

object(stdClass)[116]
public 'id' => null
public 'number' => null
public 'type' => null
public 'spec' => null
public 'speed' => null

Если я использую fetch() и возвращаю массив, индексы есть, но значения все еще NULL.Когда я запускаю этот запрос непосредственно в MySQL, я получаю ожидаемые данные.

Вот атрибуты, которые я устанавливаю для моего соединения PDO, если это помогает.

PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false

Я подозреваю, чтоможет быть связано с тем, что ничего не выбрано из таблицы в предложении FROM или WHERE.

Вот результат непосредственно из MySQL.Запрос обязательно должен вернуть строку.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...