数据库无法连接到Zend Framework

时间:2013-09-13 04:32:21

标签: php mysql zend-framework

对不起,我是Zend Framework 2的全新新手,我正在尝试连接数据库连接,如下所示:

中创建了一个文件 XAMPP \ htdocs中\ articlemanager \应用\ CONFIGS \自动加载\ global.php

将以下Zend DB连接代码插入global.php

<?php
return array(
    'service_manager' => array(
        'factories' => array(
            'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
        ),
        'aliases' => array(
            'db' => 'Zend\Db\Adapter\Adapter',
        ),
    ),
    'db' => array(
        'driver'    => 'PDO_MYSQL',
        'dsn'       => 'mysql:dbname=articlemanager;host=localhost',
        'username'  => 'root',
        'password'  => '',
        'driver_options' => array(
                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
         ),
    ),
);

并在Indexcontroller(\ xampp \ htdocs \ articlemanager \ application \ controllers \ IndexController.php)中测试了在indexAction中添加$this->db = $this->getServiceLocator()->get('db');,如下所示

public function indexAction()
    {
        $this->db = $this->getServiceLocator()->get('db');
    }

当我刷新页面时,它显示为

发生错误

申请错误

我能知道我在这里错过了什么吗?

此外,我想知道My Zend Library位于 xampp \ _htd \ _scn / \ _对于\ strong> xampp \ htdocs \ articlemanager \ application \ configs \ autoload中的 \ xampp \ php \ Zend 和My global.php文件\ global.php 可以吗?

2 个答案:

答案 0 :(得分:1)

你为什么在&#39; Db&#39;上使用Alias? ?

试试这个,你的驱动程序名称与我的不同。

此外,请将您的用户名和密码移至local.php ..因此它们不会在Git项目中保留

<强> global.php

<?php
return array(
    'db' => array(
        'driver'    => 'Pdo',
        'dsn'       => 'mysql:dbname=articlemanager;host=localhost',
        'driver_options' => array(
                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
         ),
    ),
    'service_manager' => array(
        'factories' => array(
            'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
        ),
    ),
);

local.php示例

<?php
return array(
    'db' => array(
        'username' => 'DB_USERNAME',
        'password' => 'DB_PASSWORD',
     ),
);

答案 1 :(得分:0)

数据库连接问题可能是许多不同的问题,通过查看creds / db配置信息不一定显而易见。

你看过任何日志吗?我的应用程序有几个不同的日志设置 - PHP错误,访问日志,mysql错误日志等 - 根据您的应用程序,您可能没有这么多的离散定义,但检查您所拥有的任何日志将给你更多信息不仅仅是“发生错误”:)