2011-09-04 5 views
0
젠드 프레임 워크 내 프로젝트에 대해 너무 많이하지만 난 그것으로 새로운 해요 왜냐하면 내가 zend_db 독립를 사용하려면

이 그것이 올바른이하는 것입니다 독립형 : (zend_db

$ pdoParams = 배열을 PDO :: MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;');

$params = array(
     'host' => 'localhost', 
     'username' => 'ss_fraat', 
     'password' => 'jos10', 
     'dbname' => '_a2hDB', 
     'driver_options' => $pdoParams 
    ); 

    try { 
     $db = Zend_Db::factory('PDO_MYSQL', $params); 
     //set default adapter 
     Zend_Db_Table_Abstract::setDefaultAdapter($db); 
    } catch (Exception $e) { 
     exit($e->getMessage()); 
    } 

    //save Db in registry for later use 
    Zend_Registry::set('dbAdapter', $db); 

다음 모든 클래스에서이 작업을 수행 :

$db = Zend_Registry::get('db'); 
/** quote to avoid sql injection */ 
$date = $db->quote('1980-01-01'); 
$sql = 'SELECT * FROM product WHERE name = ' . $date; 
$result = $db->query($sql); 
$db->query(); //run a query 

난 정말 내가 웹 사이트에서이 코드를 얻을이

Zend_Db_Table_Abstract::setDefaultAdapter($db); 

을 할 필요가, 사용하는 것이 필요하다 Zend_Db_Table_Abstract 전체 zend 프레임 워크, 을 사용하지 않거나 이것을 사용하는 것이 더 좋습니다 :

$ db = Zend_Db :: factory (... options ...); $ select = new Zend_Db_Select ($ db);

내 부트 스트랩 PHP 페이지에서 pdo/mysql 연결을 설정하고 쿼리를 실행하기 위해 새 연결을 시작하지 않고 모든 클래스에서 해당 db 인스턴스를 가져올 수 있어야합니다.하지만 사용 방법을 잘 모르겠습니다. Zend_Db_Table_Abstract 또는 Zend_Db_Select 레지스트리 Zend_Registry :: 설정 ('dbAdapter', $ DB를) 여부를 덕분에 많은

+0

참조 http://stackoverflow.com/questions/4840941/zend-db-without-zend-framework/4841608#4841608 – atherdon

답변

0

를 사용 Zend_Db_Table_Abstract의 목적은 그래서 당신은 테이블 데이터 게이트웨이 디자인 패턴을 기반으로 자신의 모델 클래스를 생성 할 수 있습니다. 그 패턴의 아이디어는 당신이 테이블과 인터페이싱하는데 필요한 모든 SQL을 캡슐화하는 클래스를 가지고 있다는 것입니다. 따라서 각 테이블에 대해 Zend_Db_Table_Abstract를 확장하는 모델 클래스를 만드는 것으로 가정합니다. 그렇게 할 예정이라면 셋업/부트 스트랩에서 Zend_Db_Table_Abstract :: setDefaultAdapter ($ db)를 호출 할 수 있습니다. 요약

$userTable = new Zend_Db_Table('users'); 

,이 중 어느 것도 특히의 MVC 부분과 관련이 없습니다 : ZF의 최신 버전은 Zend_Db_Table가 인스턴스화하여 사용자 정의 클래스 정의를 만들 필요없이 대안으로 점점 기본 기능의 빠른 방법을 제공합니다 이 프레임 워크는 Doctrine이나 Propel과 같은보다 완벽한 ORM을 사용하는 대신 Zend_db를 db 연결 및 모델의 기초로 사용하기도하지만

다른 코드는 단순히 Zend_Db_Table_Abstract를 사용할 필요가 없다는 것을 보여줍니다. Zend_Db_Adapter의 인스턴스를 설정하고 해당 인스턴스를 사용하여 query() 또는 다른 메소드를 호출 할 수 있습니다.

관련 문제