Чат Telegram
Группа ВКонтакте

Php при формировании массива из базы данных теряет столбцы

Есть у меня вот такой вот php-код (PDO запрос к базе данных)


$stm = $dbh->query("
 SELECT abon_types.*, lesson_types.title, parts_of_day.title 
 FROM `abon_types`, `lesson_types`, `parts_of_day` 
 WHERE abon_types.lesson_type=lesson_types.id AND abon_types.part_of_day=parts_of_day.id 
 ORDER BY part_of_day, lenth");
$abons_for_sale = $stm->fetchAll();

В phpMyAdmin результат выполнения SELECTа из этого кода выводится без нареканий.

А вот в массиве данных, формируемом php (массив $abons_for_sale), теряется предпоследняя колонка!

Всегда тестирую все SELECTы в phpMyAdmin, прежде чем использовать их в PDO-инструкциях. Всякое бывало. Но такой разницы в результате никогда не видел. phpMyAdmin формирует массив из девяти колонок, а php - только из 8!

Очевидно, что это как-то связано с тем, что последние два поля в выборке имеют одинаковые названия внутри своих таблиц.

Можно ли как-то обойти эту инвалидность без придумывания оригинальных названий всем колонкам?

Maxim 21.09.2020 в 17:09

Ответы на вопрос (1)


Можно добавить алиасы в запросе:

SELECT abon_types.*, lesson_types.title AS lesson_types_title, ...
ivashkevich 27.09.2020 в 17:01

Спасибо за идею

Maxim 30.09.2020 в 18:00

Добавить новый ответ