正在学习 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',
)
要连接到数据库,请使用:
$dbAdapter = Zend_Db::factory('Pdo_Mysql', array(
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxxxx',
'dbname' => 'test'
));
并设置默认适配器:
Zend_Db_Table::setDefaultAdapter($dbAdapter);
有一些方法可以将特定适配器设置到表中,而无需配置默认适配器等......
您可以在文档中查看更多详细信息...请阅读它:D
[]的
在应用程序文件夹内的引导文件中添加以下代码:
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
这是没有配置数据库的问题
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