Mysql Zend数据库连接失败
好的,我解决这个问题真的很困难。我试图从zend应用程序连接到mysql数据库,收到以下错误:Mysql Zend数据库连接失败,mysql,zend-framework,database-connection,Mysql,Zend Framework,Database Connection,好的,我解决这个问题真的很困难。我试图从zend应用程序连接到mysql数据库,收到以下错误: Message: No database adapter present 我已经检查并再次检查了连接凭据,它们应该可以。代码也应该很好,因为它在开发环境中工作正常。如果我在开发环境中故意将密码更改为不正确,我会得到完全相同的错误,这使我相信,尽管我进行了检查,但情况可能是这样 任何想法都是非常受欢迎的。如果这里没有明显的错误,那么我可能需要查看服务器/db/php设置 谢谢 引导代码: class
Message: No database adapter present
我已经检查并再次检查了连接凭据,它们应该可以。代码也应该很好,因为它在开发环境中工作正常。如果我在开发环境中故意将密码更改为不正确,我会得到完全相同的错误,这使我相信,尽管我进行了检查,但情况可能是这样
任何想法都是非常受欢迎的。如果这里没有明显的错误,那么我可能需要查看服务器/db/php设置
谢谢
引导代码:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initPlaceholders(){
Zend_Session::start();
$this->bootstrap('View');
$view = $this->getResource('View');
$view->doctype('XHTML1_STRICT');
// Set the initial stylesheet:
$view->headLink()->appendStylesheet('/css/global.css');
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('Pog_');
Zend_Controller_Action_HelperBroker::addPath(
APPLICATION_PATH . '/controllers/helpers',
'Application_Controller_Action_Helper_');
}
}
配置文件:
[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.view[] =
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.view.helperPath.View_Helper = APPLICATION_PATH "/views/helpers"
database.adapter = pdo_mysql
database.params.host = localhost
database.params.username = user
database.params.password = password
database.params.dbname = test
数据库连接助手:
索引:
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
将数据库定义为资源
resources.db.adapter = pdo_mysql
resources.db.params.host = localhost
resources.db.params.username = user
resources.db.params.password = password
resources.db.params.dbname = test
在主文件中,您无需执行任何操作,只需启动一个查询,而无需担心从配置中分配数据库-在内部完成,数据库资源始终被选为数据库事务的默认适配器谢谢Sam。那么,我的数据库连接助手中有什么?或者你的意思是我根本不需要这个。。。我只需直接调用代码中的查询,就可以为我处理连接了?试试看;)就我的理解而言,zend_db_Query/_Select使用默认适配器。因此,配置文件中的DB资源应该可以工作。就我个人而言,我使用表数据网关,因此根本不进行手动查询。PS:将数据库定义为
resources.db.*
类似于resources.mydb.*
的东西是非常重要的。mydb.*不能用作默认网关!因此,我修改了代码以反映Sam的建议,并面临不同的错误。结果表明,服务器上没有正确安装pdo扩展。修复此问题后,我又收到一个错误,提示服务器的登录凭据不正确。。。这就是进步。然后我计算出resources.db.params.[…]引用的凭据需要使用语音标记。在纠正了所有这些事情之后。。。我现在开始跑步了。希望这些信息在某些方面对其他人有所帮助,并感谢Sam建议更改为使用resources.db而不是config suff。
resources.db.adapter = pdo_mysql
resources.db.params.host = localhost
resources.db.params.username = user
resources.db.params.password = password
resources.db.params.dbname = test