我想在 Zend_Db_Table_Abstract 的扩展类中更改获取模式。以下不起作用:
<?php
class Foo extends Zend_Db_Table_Abstract
{·
function bar()
{
return $this->fetchAll(Zend_Db::FETCH_NUM);
}
}
任何人都知道如何正确地做到这一点?谢谢!
我想在 Zend_Db_Table_Abstract 的扩展类中更改获取模式。以下不起作用:
<?php
class Foo extends Zend_Db_Table_Abstract
{·
function bar()
{
return $this->fetchAll(Zend_Db::FETCH_NUM);
}
}
任何人都知道如何正确地做到这一点?谢谢!
如果您只想按列号获取数据,我认为 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);
}
我希望这可以帮助你。
<?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);
}
}