Получение имен столбцов ResultSet

Я использую Symfony 1.1 с плагином Propel и базой данных MySQL. Чтобы получить результаты, я передаю свой запрос в соединение с Propel и вызываю executeQuery().

Я пытаюсь получить имена столбцов моего ResultSet, когда мой запрос не дает результатов. Когда у него есть результаты, все, что мне нужно сделать, это взять имена ключей массива. Когда у меня нет результатов, getRow() возвращает false, поэтому я не могу получить какие-либо ключи массива.

Мой запрос состоит из нескольких таблиц с псевдонимами разных имен столбцов.

Есть ли другой способ получить имена столбцов, все еще используя объект Propel?


person clang1234    schedule 24.01.2011    source источник


Ответы (3)


Креольские драйверы для MySQL используют "классические" функции MySQL, и вы тоже можете это сделать. С помощью mysql_fetch_field() вы можете получить информацию об определенном поле, даже если строки не были возвращены. Вам нужно только передать правильный ресурс результата, и вы можете получить его с помощью метода getResource() вашего ResultSet.

person Jan Fabry    schedule 25.01.2011
comment
Это именно то, что мне было нужно. Большое спасибо. Это с комбинацией mysql_fetch_fields и цикла for дает мне все, что мне нужно. - person clang1234; 25.01.2011

Если это конкретная таблица, то можно сделать как сказано выше (ПОКАЗАТЬ КОЛОННЫ ИЗ table_name;).

Но если у вас сложный запрос, единственным решением может быть анализ строки с использованием регулярного выражения.

person vvm    schedule 24.01.2011

person    schedule
comment
К сожалению, я не просто обрабатываю запрос к одной таблице. Запрос состоит из нескольких таблиц, объединенных вместе с различными псевдонимами столбцов. Я отредактирую оп с этим уточнением. - person clang1234; 24.01.2011