2010-08-14 3 views
3

젠드 튜토리얼을 통해 작업 & & 어디서 볼 것인지 확실하지 않습니다.zend newbie question - "어댑터가 없습니다"

덕분에,

An error occurred 
Application error 
Exception information: 

Message: No adapter found for Model_DbTable_Books 
Stack trace: 

#0 C:\xampp\php\PEAR\Zend\Db\Table\Abstract.php(739): Zend_Db_Table_Abstract->_setupDatabaseAdapter() 
#1 C:\xampp\php\PEAR\Zend\Db\Table\Abstract.php(268): Zend_Db_Table_Abstract->_setup() 
#2 C:\xampp\htdocs\zftutorials\zftutorial\application\controllers\BooksController.php(34): Zend_Db_Table_Abstract->__construct() 
#3 C:\xampp\php\PEAR\Zend\Controller\Action.php(513): BooksController->listAction() 
#4 C:\xampp\php\PEAR\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('listAction') 
#5 C:\xampp\php\PEAR\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#6 C:\xampp\php\PEAR\Zend\Application\Bootstrap\Bootstrap.php(77): Zend_Controller_Front->dispatch() 
#7 C:\xampp\php\PEAR\Zend\Application.php(358): Zend_Application_Bootstrap_Bootstrap->run() 
#8 C:\xampp\htdocs\zftutorials\zftutorial\public\index.php(26): Zend_Application->run() 
#9 {main} 

Request Parameters: 

array (
    'controller' => 'books', 
    'action' => 'list', 
    'module' => 'default', 
) 
+0

젠드 튜토리얼은 어떤 것입니까? 그것에 대한 링크를 게시하는 마음? –

+0

는 http://www.youtube.com/user/integral30#p/u/58/kuNNwpeNn4s 튜토리얼 좋은 세트, 불행하게도 그는 DB 접근 너무 많은 세부 사항에 가지 않습니다 –

답변

8

데이터베이스 사용에 연결하려면 :

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

그리고 기본 어댑터 설정 :

Zend_Db_Table::setDefaultAdapter($dbAdapter); 

가 특정 어댑터를 설정하는 몇 가지 방법이 있습니다를 기본 어댑터를 구성하지 않고 테이블 및 기타 ....

당신은 ... 문서에서 자세한 내용을 좀 볼을 읽을 수 있습니다 : D

[]의

+0

참고로, 특히 기본 어댑터를 설정 zend_application에 multiDb 리소스 플러그인을 사용하고있는 경우 –

1

자습서이 application.ini 파일에 설정이 필요 동안 펠리페는 정확했다.

resources.db.adapter = mysqli 
resources.db.params.host = localhost 
resources.db.params.username = user 
resources.db.params.password = pw 
resources.db.params.dbname = test 
3

응용 프로그램 폴더 내 부트 스트랩 파일에 다음 코드를 추가 :

protected function _initDB() { 

     $dbConfig = new Zend_Config_Ini(APPLICATION_PATH . '/configs/db.ini'); 
     $dbAdapter = Zend_Db::factory($dbConfig->adapter, array(
      'host'  => $dbConfig->hostname, 
      'username' => $dbConfig->username, 
      'password' => $dbConfig->password, 
      'dbname' => $dbConfig->dbname 
     )); 

     My_Db_Table_Abstract::setDefaultAdapter($dbAdapter); 

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


     if (APPLICATION_ENV == 'development') { 
      $profiler = new Zend_Db_Profiler_Firebug('All DB Queries'); 
      $profiler->setEnabled(true); 
      $dbAdapter->setProfiler($profiler); 
     } 
    } 


     public function _initRouter() 
     { 
      $front = Zend_Controller_Front::getInstance(); 
      $router = $front->getRouter(); 

     } 

} 

및 application.ini 파일에 다음 코드 :

resources.db.adapter = mysqli 
resources.db.params.host = localhost 
resources.db.params.username = username of mysql(default root) 
resources.db.params.password = password of mysql(default blank means '') 
resources.db.params.dbname = test 

이 아닌 구성의 문제 데이터베이스