2012-04-25 36 views
0

我想在擴展的Zend_Db_Table_Abstract類中更改獲取模式。下面確實沒有工作Zend Db表和設置獲取模式

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

任何人有一個想法如何正確地做到這一點? 謝謝!

回答

2

因爲Zend_Db_Table的fetchAll()方法總是希望返回一個行集,在這種情況下,Foo行,我不認爲Zend_Db_Table是正確的使用,如果你只是想按列號獲取數據。這些行使用列名稱作爲對象屬性。

如果你真的需要用編號索引抓取,請嘗試使用DB適配器,而不是數據庫表來代替:

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