代码之家  ›  专栏  ›  技术社区  ›  Kladskull

通过我的ini文件出现Zend错误

  •  1
  • Kladskull  · 技术社区  · 17 年前

    但是,我在我的网站上发现了以下错误,我不知道该怎么做。我知道我错过了什么,但我就是想不出来。

    你可以看到我正在努力实现的目标: 4.6.4. Zend_Application_Resource_Session

    致命错误:未捕获异常“zend_db_table_exception”,在C:\xampp\htdocs\app\library\zend\db\table\abstract中显示消息“找不到Zend_session_savehandler_db table”的适配器。php:667堆栈跟踪:0 C:\xampp\htdocs\app\library\zend\db\table\abstract.php(652):zend_db_table_abstract->_setupdatabaseadapter()1 C:\xampp\htdocs\app\library\zend\session\savehandler\db table.php(401):zend_-db_-table-ab抽象>_setup()35; 2 c:\xampp\htdoc \app\lib \zend\db\table \abstract.php(286):zend_-ses会话\savehandle \u-db table->\ 3 c:\xampp\htdoc \verelo\lib \zend\sessessessessavehandle \\db table.php(205):zend_-db_-table _-ab摘要_-ab抽象>>&uu-constru构造(数组)C:\xampp\htdocs\app\library\zend\apapplication\resource\session.php(59):zend_session_savehandler_dbtable->u construct(array)5 c:\xampp\htdocs\app\library\zend\application\resource\resourceabstract.php(93):zend_application_resource_session->setsavehandler(array)6 c:\xampp\htdocs\app\library\zend\application\resource\resourceabstract.php(72):zend_application_in c:\xa\第667行的htdocs\app\library\zend\db\table\abstract.php

    这是我的config.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"
    
    resources.db.adapter = "pdo_mysql"
    resources.db.params.host = "localhost"
    resources.db.params.username = "root"
    resources.db.params.password = ""
    resources.db.params.dbname = "app"
    resources.db.isDefaultTableAdapter = true
    
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    ;resources.frontController.moduleControllerDirectoryName = "actions"
    ;resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    ;resources.frontController.defaultControllerName = "site"
    ;resources.frontController.defaultAction = "home"
    ;resources.frontController.defaultModule = "static"
    ;resources.frontController.baseUrl = "/subdir"
    ;resources.frontController.plugins.foo = "My_Plugin_Foo"
    ;resources.frontController.plugins.bar = "My_Plugin_Bar"
    resources.frontController.env = APPLICATION_ENV
    
    resources.layout.layout = "layout"
    resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
    
    resources.view[] = 
    resources.view.encoding = "UTF-8"
    resources.view.basePath = APPLICATION_PATH "/views/scripts"
    
    resources.session.save_path = APPLICATION_PATH "/../data/session"
    resources.session.use_only_cookies = true
    resources.session.remember_me_seconds = 864000
    resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
    resources.session.saveHandler.options.name = "session"
    resources.session.saveHandler.options.primary.session_id = "session_id"
    resources.session.saveHandler.options.primary.save_path = "save_path"
    resources.session.saveHandler.options.primary.name = "name"
    resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
    resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
    resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
    resources.session.saveHandler.options.modifiedColumn = "modified"
    resources.session.saveHandler.options.dataColumn = "session_data"
    resources.session.saveHandler.options.lifetimeColumn = "lifetime"
    
    [development : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    
    resources.db.params.username = "root"
    resources.db.params.password = ""
    

    当然,我删除了根密码,这就是我为本文修改的全部内容。

    1 回复  |  直到 14 年前
        1
  •  7
  •   Rob Allen    17 年前

    您需要确保首先加载数据库资源。最简单的方法是向application/bootstrap.php添加新函数:

    <?php
    
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
        public function _initSessionAfterDb()
        {
            $this->bootstrap('db');
            $this->bootstrap('session');
        }
    
    }
    

    当然,您希望这会自动发生,所以我怀疑Zend_应用程序的会话资源中存在依赖性错误…

    推荐文章