我已经创建了一个RESTful zend2应用程序,它在本地主机上运行得很好。现在,我想将它部署到远程服务器上,并得到一些与Adabter相关的错误。我是zend框架的新手,我不知道为什么会有任何错误,因为我反复检查了每件事都是正确的。我在网上搜索了这个错误,但是找不到与Zend2相关的任何有用的答案。
我导出了整个localhost数据库并将其导入远程数据库,并将local.php和global.php中的所有数据库凭据更改为新主机中的新数据库。现在,当我想访问应用程序的数据库部分时,在模块中(比如myApp/user,它应该以json格式给我数据库中的用户列表),它会给我以下错误(如果我给出了很多错误信息,我很抱歉。我只想让我的问题更详细):
文件:
/var/www/myApp/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:244消息:
Statement could not be executed: 42S02 - 1146 - Table 'myAppDatabase.User' doesn't exist堆栈跟踪:
#0 /var/www/myApp/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php(238): Zend\Db\Adapter\Driver\Pdo\Statement->execute()
#1 /var/www/myApp/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php(208): Zend\Db\TableGateway\AbstractTableGateway->executeSelect(Object(Zend\Db\Sql\Select))
#2 /var/www/myApp/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php(195): Zend\Db\TableGateway\AbstractTableGateway->selectWith(Object(Zend\Db\Sql\Select))
#3 /var/www/myApp/module/User/src/User/Model/UserTable.php(17): Zend\Db\TableGateway\AbstractTableGateway->select()
#4 /var/www/myApp/module/User/src/User/Controller/UserController.php(40): User\Model\UserTable->fetchAll()
#5 /var/www/myApp/vendor/zendframework/zend-mvc/src/Controller/AbstractRestfulController.php(370): User\Controller\UserController->getList()
#6 [internal function]: Zend\Mvc\Controller\AbstractRestfulController->onDispatch(Object(Zend\Mvc\MvcEvent))
#7 /var/www/myApp/vendor/zendframework/zend-eventmanager/src/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#8 /var/www/myApp/vendor/zendframework/zend-eventmanager/src/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#9 /var/www/myApp/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php(118): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#10 /var/www/myApp/vendor/zendframework/zend-mvc/src/Controller/AbstractRestfulController.php(300): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#11 /var/www/myApp/vendor/zendframework/zend-mvc/src/DispatchListener.php(93): Zend\Mvc\Controller\AbstractRestfulController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#12 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#13 /var/www/myApp/vendor/zendframework/zend-eventmanager/src/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#14 /var/www/myApp/vendor/zendframework/zend-eventmanager/src/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#15 /var/www/myApp/vendor/zendframework/zend-mvc/src/Application.php(314): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#16 /var/www/myApp/public/index.php(21): Zend\Mvc\Application->run()
#17 {main}以前的例外: PDO异常:
文件:
/var/www/myApp/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:239消息:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'myAppDatabase.User' doesn't exist堆栈跟踪:
#0 /var/www/myApp/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php(239): PDOStatement->execute()
#1 /var/www/myApp/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php(238): Zend\Db\Adapter\Driver\Pdo\Statement->execute()
#2 /var/www/myApp/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php(208): Zend\Db\TableGateway\AbstractTableGateway->executeSelect(Object(Zend\Db\Sql\Select))
#3 /var/www/myApp/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php(195): Zend\Db\TableGateway\AbstractTableGateway->selectWith(Object(Zend\Db\Sql\Select))
#4 /var/www/myApp/module/User/src/User/Model/UserTable.php(17): Zend\Db\TableGateway\AbstractTableGateway->select()
#5 /var/www/myApp/module/User/src/User/Controller/UserController.php(40): User\Model\UserTable->fetchAll()
#6 /var/www/myApp/vendor/zendframework/zend-mvc/src/Controller/AbstractRestfulController.php(370): User\Controller\UserController->getList()
#7 [internal function]: Zend\Mvc\Controller\AbstractRestfulController->onDispatch(Object(Zend\Mvc\MvcEvent))
#8 /var/www/myApp/vendor/zendframework/zend-eventmanager/src/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#9 /var/www/myApp/vendor/zendframework/zend-eventmanager/src/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#10 /var/www/myApp/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php(118): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#11 /var/www/myApp/vendor/zendframework/zend-mvc/src/Controller/AbstractRestfulController.php(300): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#12 /var/www/myApp/vendor/zendframework/zend-mvc/src/DispatchListener.php(93): Zend\Mvc\Controller\AbstractRestfulController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#13 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#14 /var/www/myApp/vendor/zendframework/zend-eventmanager/src/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#15 /var/www/myApp/vendor/zendframework/zend-eventmanager/src/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#16 /var/www/myApp/vendor/zendframework/zend-mvc/src/Application.php(314): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#17 /var/www/myApp/public/index.php(21): Zend\Mvc\Application->run()
#18 {main}我将感谢任何帮助解决这一错误。
如果我在这里遗漏了一些信息,请原谅,如果您需要更多的细节,请告诉我。
提前谢谢。
发布于 2015-09-17 07:13:54
你真的确定一切都配置正确吗?:)
如果是,则可能更改为不区分大小写的系统。也许您可以进入数据库(使用phpmyadmin或类似的方法来检查表是否存在并且名称是否相对应)。或尝试将所有表重命名为小字符(小写)。
为了避免在移动/复制/迁移时出现问题,建议只为使用小写的名称,用于表、和列。所以没有像你这样的骆驼壳,而是用下划线。
因此,例如,尝试将名称更改为my_app_database (表)和user (列),然后测试它是否有效。
https://stackoverflow.com/questions/32624302
复制相似问题