2011-01-24 5 views
2

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

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

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

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

ответ

2

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

+0

Это именно то, что мне нужно. Спасибо. Это с комбинацией mysql_fetch_fields и цикла for дает мне все, что мне нужно. – clang1234

1
SHOW COLUMNS FROM `table_name`; 
+0

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

0

Если конкретная таблица, то вы можете сделать это, как сказано выше (SHOW COLUMNS FROM table_name;).

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

Смежные вопросы