Как получить имя поля с помощью запроса в Zend Framework Test «Выбрать * из Test1, Test2» как получить все имена полей в этом запросе Zend Frame work cam сделать это?
Как получить имя поля с помощью запроса в Zend Framework
Ответы (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
но не smart $ result [0], чтобы не было 1 данных в строке, если их нет, это приведет к ошибке: ‹
- person monkey_boys; 17.04.2009
я буду вставлять и удалять для этого?
- person monkey_boys; 17.04.2009
Было бы дорого и неэффективно создавать для этой цели фиктивную строку (3 запроса), поэтому вы, вероятно, захотите проверить количество возвращаемых строк, и если оно равно нулю, используйте один из мета-методов, описанных Тиллем. Или, что еще лучше, не используйте «select *», так как это не лучшая практика; заранее узнавайте только имена полей (например, используя технику Тилля), а затем используйте их для построения запросов к данным.
- person Alistair Knock; 17.04.2009
Но у 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