【问题标题】:zend framework check if column exist in a resultsetzend 框架检查列是否存在于结果集中
【发布时间】:2011-11-02 16:47:19
【问题描述】:

我有这个查询例如:

    $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'])
         { ....  }
    }

但如果可能的话,我希望它不循环就知道....

有可能吗?

再次感谢....

【问题讨论】:

    标签: zend-framework resultset exists


    【解决方案1】:

    $Field['Label'] 将始终设置。它可能是空的,但总是会被设置! 如果您想要值为 NULL 的所有记录,请适当更改您的查询

    【讨论】:

    • 谢谢你的回答......我想我把你和我的例子混淆了......试着弄清楚......我有这个:$resultRows = $dbAdapter->fetchAll($query_Group);我的问题是:我怎么知道女巫列在这个结果集中: $resultRows ?例如我需要类似的东西: columnexist($resultRows, 'Label')... 有这样的功能吗?再次感谢...
    • 引用@dinopmi 的答案!
    【解决方案2】:

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

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

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

    希望对你有帮助,

    【讨论】:

    • 感谢您的回答...但我不明白如何检查...尝试弄清楚...我有这个:$resultRows = $dbAdapter->fetchAll($query_Group );我的问题是:我怎么知道女巫列在这个结果集中: $resultRows ?例如我需要类似的东西: columnexist($resultRows, 'Label')... 有这样的功能吗?再次感谢...
    • 在这种情况下,结果行集中的所有行必须具有相同的列。您只需要获取第一个并检查它包含哪些列: $firstRow = $resultRows->first(); $firstRowArray = $firstRow->toArray(); if (isset($firstRowArray['Label'])) { ... etc... }
    猜你喜欢
    • 2021-01-07
    • 1970-01-01
    • 2011-10-09
    • 2019-05-22
    • 1970-01-01
    • 2014-04-01
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多