Как получить имя поля с помощью запроса в Zend Framework

Как получить имя поля с помощью запроса в Zend Framework Test «Выбрать * из Test1, Test2» как получить все имена полей в этом запросе Zend Frame work cam сделать это?


person monkey_boys    schedule 03.04.2009    source источник


Ответы (2)


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

$sql = 'Select * From Test1,Test2';

$result = $db->fetchAll($sql, 2);

foreach ($result[0] as $key => $value) {
 echo $key;
 ...
}
person Alistair Knock    schedule 03.04.2009
comment
но не smart $ result [0], чтобы не было 1 данных в строке, если их нет, это приведет к ошибке: ‹ - person monkey_boys; 17.04.2009
comment
я буду вставлять и удалять для этого? - person monkey_boys; 17.04.2009
comment
Было бы дорого и неэффективно создавать для этой цели фиктивную строку (3 запроса), поэтому вы, вероятно, захотите проверить количество возвращаемых строк, и если оно равно нулю, используйте один из мета-методов, описанных Тиллем. Или, что еще лучше, не используйте «select *», так как это не лучшая практика; заранее узнавайте только имена полей (например, используя технику Тилля), а затем используйте их для построения запросов к данным. - person Alistair Knock; 17.04.2009
comment
Но у Zend нет функции fetch_field с таким же codeigniter лучше: ‹ - person monkey_boys; 17.04.2009

Вы также можете ввести $db->describeTable('Test1') и т. Д. До или после запроса, который предоставит вам всю необходимую метаинформацию. Однако этот запрос довольно дорогой, поэтому обязательно кешируйте ответ.

Кроме того, если вы используете модель, которая расширяет Zend_Db_Table_Abstract, тогда у вас уже должна быть вся эта информация. В этом случае все, что вам нужно сделать, это получить доступ к защищенному свойству $_metadata.

HTH

person Till    schedule 11.04.2009