Получить столбцы, если в запросе нет данных - PullRequest
0 голосов
/ 17 января 2019

Я хочу получить столбцы, выбранные в запросе, если данные не возвращаются

 $sql = $this->em->getConnection()->prepare('
                SELECT
                    DATE_FORMAT(cus.period, "%Y") as ANNEE,
                    DATE_FORMAT(cus.period, "%m") as MOIS,
                    c.name AS PAYS,
                    co.id AS ORIGINE_ID,
                    co.name AS ORIGINE,
                FROM customs AS cus
                WHERE cp.product in (503)
                GROUP BY ANNEE, MOIS, PRODUCT, co.id , c.id
                ORDER BY ANNEE, MOIS, CAMPAGNE, PRODUCT, co.id, c.name;'
        );
$sql->execute();
$result = $sql->fetchAll();

У меня нет данных, результат - пустой массив, но я хочу, чтобы в случае отсутствия данных не было такого массива, как

$result = [ 'ANNEE', 'MOIS', 'PAYS', 'ORIGINE_ID', 'ORIGINE'<br> ]

1 Ответ

0 голосов
/ 17 января 2019

getConnection() в Doctrine возвращает PDO, который оборачивает, что означает, что мы можем использовать getColumnMeta() для получения имен столбцов:

$stmt = $sql->execute();
$columnNames = array();

foreach(range(0, $stmt->columnCount() - 1) as $index) {
    $columnNames[] = $stmt->getColumnMeta($index)['name'];
}

$columnNames может быть добавлено к вашему $result

...