2011-01-30 2 views
6

Zend_Framework없이 Zend_Db를 사용하고 싶습니다. 젠드 프레임 워크를 사용하여 만든 기존 웹 사이트에 Zend_Db를 통합하고 싶습니다. 이처럼 Zend_Db를 사용할 수 있습니까? 당신이 좋은 튜토리얼이나 예제를 좋은 방법을 추천 해 줄 수 있습니까?젠드 프레임 워크가없는 Zend_Db

답변

10

어느 정도까지는 사용중인 웹 프레임 워크에 따라 다릅니다. 그러나 일반적으로 Zend_Db documentation은 이와 관련하여 매우 명확합니다.

부트 스트랩에 어댑터 인스턴스를 만듭니다. 예를 들어 : 당신이 Zend_Db_Table을 사용하려는 경우

$db = Zend_Db::factory('Pdo_Mysql', array(
    'host'  => '127.0.0.1', 
    'username' => 'webuser', 
    'password' => 'xxxxxxxx', 
    'dbname' => 'test' 
)); 

가, 다음이 기본 어댑터를 만들 수 있습니다 : 어떤 경우에

Zend_Db_Table::setDefaultAdapter($db); 

, 당신이 액세스 할 수있는이 어댑터는 곳을 저장하는 것이 도움이 그것. 예를 들어 :

Zend_Registry::set('db', $db); 

는 그런 다음 다운 스트림 코드에서, select()에 대한 쿼리를 만들려면이 어댑터를 사용 insert(), update(), delete() 등이 도움이

$db = Zend_Registry::get('db'); 
$select = $db->select() 
    ->from('posts') 
    ->where('cat_id = ?', $catId) 
    ->order('date_posted DESC') 
    ->limit(5); 
$rows = $db->fetchAll($select); 

희망. 건배!

+0

종합적인 답변 ... –

+0

고맙습니다. 나는 이것을 시도 할 것이다. – user594791

0

Raw PDO를 사용하는 것보다 Zend_Db를 사용하는 것이 더 좋습니다 (IMHO). $ db Object를 생성 한 다음 Zend_Db_Select Class를 사용하여 SQL 문을 생성하고 $ select SQL 문을 fetch * (fetchRow, fetchAll ...) 메소드에 전달하십시오.

1

젠드 프레임 워크 (2) *를 들어, 어댑터를 생성하는 것 : 선택한 $에서 순수 SQL을 얻으려면,

$sql = new \Zend\Db\Sql\Sql($db); 
$select = $sql->select() 
    ->from('posts') 
    ->where(array('cat_id' => $catId)) 
    ->order('date_posted DESC') 
    ->limit(5); 
$statement = $sql->prepareStatementForSqlObject($select); 
$results = $statement->execute(); 

을 또는 :

$db = new \Zend\Db\Adapter\Adapter([ 
    'driver' => 'Pdo_Mysql', 
    'host' => '127.0.0.1', 
    'username' => 'webuser', 
    'password' => 'xxxxxx', 
    'database' => 'test', 
]); 

가 선택 만들려면

$selectSql = $sql->getSqlStringForSqlObject($select); 

Docs이 도움이 될 수 있습니다. TableGateway을 사용하면 더 간단해질 수 있습니다.