我是Zend框架的新手。我已经在控制器的动作方法中对每个特定页面进行了数据库连接,工作正常。
我正在使用WAMP服务器,但现在我想在一个页面上学习数据库连接类。并在不同的不同操作方法上使用它。我希望在索引页面上建立连接并在项目的所有页面上使用。
这是我在控制器中的操作方法:
public function userAction()
{
$db = Zend_Db_Table::getDefaultAdapter();
$data = array(
'first_name' => 'xyz',
'last_name' => 'xyz',
'user_name' => 'xyz',
'password' => 'xyz'
);
$rows_affected = $db->insert('user', $data);
$last_insert_id = $db->lastInsertId();
}
和application.ini文件在下面,我只在此文件中添加数据库适配器设置
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.db.adapter = "PDO_MYSQL"//adapter
resources.db.params.host ="localhost" //server name here or host
resources.db.params.username = "root"///username here
resources.db.params.password = "" //database password
resources.db.params.dbname = "zend"//database name
resources.db.isDefaultTableAdapter = true
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
答案 0 :(得分:2)
在主应用程序引导程序中执行此操作。
protected function _initMysql() {
$this->bootstrap('db');
switch (APPLICATION_ENV) {
case 'development' :
// this allows you to profile your queries through the firebug console
$profiler = new Zend_Db_Profiler_Firebug('System Queries');
$profiler->setEnabled(true);
$this->getPluginResource('db')->getDbAdapter()->setProfiler($profiler);
break;
case 'production' :
// if you use meta caching in production, which you should :)
// Zend_Db_Table_Abstract::setDefaultMetadataCache($this->_cache);
break;
}
}
的application.ini
resources.db.adapter = "Pdo_Mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "*****"
resources.db.params.password = "*****"
resources.db.params.dbname = "******"
resources.db.driver_options.charset = "utf-8"
resources.db.isDefaultTableAdapter = true
当然要确保在index.php中传递正确的APPLICATION_ENV,因为它确定了应用程序将用于其配置的application.ini块。
答案 1 :(得分:0)
您必须像这样编辑application.ini。
添加此代码。
resources.db.adapter = //adapter
resources.db.params.host = //server name here or host
resources.db.params.username = ///username here
resources.db.params.password = //database password
resources.db.params.dbname = //database name