zend 新手问题 - “找不到适配器”

发布于 2024-09-14 15:30:01 字数 1333 浏览 6 评论 0原文

通过 zend 教程进行工作收到此消息,&不知道该去哪里寻找。

谢谢,

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',
)  

Working through a zend tutorial & get this message, & not sure where to look.

thanks,

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',
)  

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

楠木可依 2024-09-21 15:30:01

要连接到数据库,请使用:

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

并设置默认适配器:

Zend_Db_Table::setDefaultAdapter($dbAdapter);

有一些方法可以将特定适配器设置为表,而无需配置默认适配器等...

您可以在文档中查看更多详细信息...请阅读它:D

[] 的

To connect to database use:

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

And to set a default adapter:

Zend_Db_Table::setDefaultAdapter($dbAdapter);

There are some ways to set a specific adapter to a table without configure the default adapter and etc....

You can see more details in documentation... please, read it :D

[]'s

绅刃 2024-09-21 15:30:01

在application文件夹下的bootstrap文件中添加以下代码:

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

这是没有配置数据库的问题

Add following code in bootstrap file within the application folder:

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();

        }

} 

and the following code in application.ini file:

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

this is the problem of not configuration of database

话少心凉 2024-09-21 15:30:01

Felipe 是正确的,而教程要求在 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

Felipe was correct, while the tutorial required this set up in application.ini file.

resources.db.adapter = mysqli
resources.db.params.host = localhost
resources.db.params.username = user
resources.db.params.password = pw
resources.db.params.dbname = test
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文