0

我想在 Zend_Db_Table_Abstract 的扩展类中更改获取模式。以下不起作用

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

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

4

2 回答 2

2

如果您只想按列号获取数据,我认为 Zend_Db_Table 不适合使用,因为 Zend_Db_Table 的 fetchAll() 方法总是希望返回一个行集,在这种情况下,是 Foo 行。并且行使用列名作为对象属性。

如果您确实需要使用编号索引获取,请尝试使用 DB Adapter 而不是 DB Table:

function bar() {
    $dbAdapter = $this->getAdapter();
    $dbAdapter->setFetchMode(Zend_Db::FETCH_NUM);
    return $dbAdapter->fetchAll("SELECT * FROM " . $this->_name);
}
于 2012-05-01T04:04:05.847 回答
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);
    }
}
于 2014-09-26T17:18:33.780 回答