Ответ актуален в документации PHP :
"Если два или более столбцов результата имеют одинаковые имена полей, последний столбец будет иметь приоритет. Чтобы получить доступ к другим столбцам с тем же именем, вам необходимо получить доступ к результату с помощью числовых индексов, используя mysql_fetch_row()
или добавьте псевдонимы. См. Пример в mysql_fetch_array()
описании псевдонимов. "
Особенно mysql_fetch_array()
кажется лучшим кандидатом, когда вы настаиваете на использовании звездочки в операторе выбора:
$row = mysql_fetch_array($result, MYSQL_BOTH)
Тогда вы можете ссылаться на однозначные поля $row[name]
и на неоднозначные $row[col_number]
, но это ограничивает переносимость вашего кода (возможно, следующая версия MySQL будет возвращать столбцы в другом порядке?) Рекомендуемое решение - переписать ваш запрос и перечислить все обязательные поля вместо звездочки, а для неоднозначных - использовать псевдонимы.