Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Zend数据库连接失败_Mysql_Zend Framework_Database Connection - Fatal编程技术网

Mysql Zend数据库连接失败

Mysql Zend数据库连接失败,mysql,zend-framework,database-connection,Mysql,Zend Framework,Database Connection,好的,我解决这个问题真的很困难。我试图从zend应用程序连接到mysql数据库,收到以下错误: Message: No database adapter present 我已经检查并再次检查了连接凭据,它们应该可以。代码也应该很好,因为它在开发环境中工作正常。如果我在开发环境中故意将密码更改为不正确,我会得到完全相同的错误,这使我相信,尽管我进行了检查,但情况可能是这样 任何想法都是非常受欢迎的。如果这里没有明显的错误,那么我可能需要查看服务器/db/php设置 谢谢 引导代码: class

好的,我解决这个问题真的很困难。我试图从zend应用程序连接到mysql数据库,收到以下错误:

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