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

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

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

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

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

3 ответа

Решение

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

SHOW COLUMNS FROM `table_name`;

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

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

Другие вопросы по тегам