代码之家  ›  专栏  ›  技术社区  ›  evilReiko

ZF3:如何在ZF3中执行DB fetchRow()或fetchAll()或fetchCol()或fetchOne()?

  •  1
  • evilReiko  · 技术社区  · 7 年前

    ZF1 DB adapter ,现在我正在学习ZF3,但我似乎找不到与之等效的:

    $rows = $db->fetchAll('select * from `my_table`');
    $row = $db->fetchRow('select * from `my_table` where `id` = 1');
    $values = $db->fetchCol('select `my_col` from `my_table`');
    $value = $db->fetchOne('select `my_col` from `my_table` where `id` = 1');
    

    我在ZF3中找到的示例提到了使用prepare语句。那么,在ZF3中,如何在1行中实现上述各项呢?

    2 回复  |  直到 7 年前
        1
  •  3
  •   tasmaniski    7 年前

    您可以使用与ZF1中相同的方法构建select。我的代码示例:

    // From Mapper that extends AbstractTableGateway 
    // and implements AdapterAwareInterface
    
    $select = $this->getSql()->select()
            ->join('articles', 'article_events.article_uuid = articles.article_uuid')
            ->where(['articles.article_id' => $id]);
    
    $result = $this->selectWith($select);  
    
    // $result; is fetchAll()
    // $result->current();  is fetchRow() or fetchOne() 
    // $result->current()->col_name  is fetchCol();
    
        2
  •  2
  •   akond    7 年前

    ResultSet\ResultSetInterface