Zend Db表和设置获取模式

时间:2012-04-25 09:46:54

标签: php zend-db zend-db-table

我想在Zend_Db_Table_Abstract的扩展类中更改获取模式。以下工作:

<?php
class Foo extends Zend_Db_Table_Abstract
{·
  function bar()
   {
     return $this->fetchAll(Zend_Db::FETCH_NUM);
   }
}

任何人都知道如何正确地做到这一点? 谢谢!

2 个答案:

答案 0 :(得分:2)

如果您只想按列号获取数据,我认为Zend_Db_Table是正确的,因为Zend_Db_Table的fetchAll()方法总是希望返回一个行集,在本例中是Foo行。行使用列名作为对象属性。

如果您确实需要使用带编号的索引进行提取,请尝试使用数据库适配器而不是数据库表:

function bar() {
    $dbAdapter = $this->getAdapter();
    $dbAdapter->setFetchMode(Zend_Db::FETCH_NUM);
    return $dbAdapter->fetchAll("SELECT * FROM " . $this->_name);
}

答案 1 :(得分:2)

我希望这可以帮到你。

<?php
class Langs extends Zend_Db_Table_Abstract
{
    protected $_name = 'langs';
    protected $_primary = 'id';


    public function getLangs() {
        $query = "SELECT lang_short "
               . "FROM $this->_name "
               . "ORDER BY $this->_primary";

        return $this->_db->fetchAll($query, null, Zend_Db::FETCH_OBJ);
    }
}