2011-11-02 23 views
1

存在我有这样的查询,例如:Zend Framework的检查,如果列一个结果

$dbAdapter = Zend_Db_Table::getDefaultAdapter(); 
    $query_Group = $dbAdapter->select(); 
    $query_Group->from(array('FI' => 'request_field'), 
         array('*')); 


    $resultRows = $dbAdapter->fetchAll($query_Group); 

好了,现在我怎么能知道,如果$ resultRows里面有列“标签”,例如? 我知道我能做到这一点:

foreach($resultRowsas $key => $Field) 
    { 
     if(isset($Field['Label']) 
     { .... } 
    } 

但是,如果有可能,我希望它不知道它循环....

这是可能的吗?

再次感谢....

回答

0

$Field['Label']将始终设置。它可能是空的,但会一直设置! 如果你想所有记录的值为NULL,适当地改变你的查询

+0

谢谢您的回答......我想我迷惑你我的例子......揣摩......我有这样的:$ resultRows = $ dbAdapter->使用fetchall($ query_Group);我的问题是:我如何知道女巫专栏是在这个resulset:$ resultRows?例如,我需要soemhing像:columnexist($ resultRows,'Label')...有没有这样的功能?再次感谢... – Samuele

+0

引用@dinopmi的答案! – JellyBelly

0

如果我理解正确,你想知道给定列是否存在在表中。在这种情况下,您可能会为此调用describeTable()方法。

您可以在Zend_Db_Adapter documentation中看到说明。

如果该列是在表模式中定义的,那么您需要像@JellyBelly所说的那样查询适当的值,如NULL。在这种情况下,他的答案就是你需要的。

希望帮助,

+0

感谢您的回答...但我不明白如何检查它...试图找出...我有这个:$ resultRows = $ dbAdapter-> fetchAll($ query_Group);我的问题是:我如何知道女巫专栏是在这个resulset:$ resultRows?例如,我需要soemhing像:columnexist($ resultRows,'Label')...有没有这样的功能?再次感谢... – Samuele

+1

在这种情况下,结果行集中的所有行必须具有相同的列。你只需要得到第一个,并检查它包含的列: $ firstRow = $ resultRows-> first(); $ firstRowArray = $ firstRow-> toArray(); (isset($ firstRowArray ['Label'])){ ... etc ... }如果(isset($ firstRowArray ['Label'])){ ...等等 } – dinopmi