2012-04-25 1 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 테이블의 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); 
    } 
}