0

对不起,我对 Zend Framework 2 完全陌生,有一些教程我正在尝试连接我的数据库连接,如下所示,

在xampp\htdocs\articlemanager\application\configs\autoload\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)$this->db = $this->getServiceLocator()->get('db');中测试添加 indexAction 如下

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

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

发生错误

应用程序错误

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

另外我想知道我的 Zend 库在\xampp\php\Zend中,而我的 global.php 文件在xampp\htdocs\articlemanager\application\configs\autoload\global.php中可以吗?

4

2 回答 2

1

你为什么在 'Db' 上使用别名?

试试这个,你的司机名字和我的不一样。

另外,请将您的用户名和密码移动到 local.php.. 这样它们就不会保留在 Git 项目中

全局.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',
     ),
);
于 2014-04-02T01:48:56.343 回答
0

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

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

于 2013-09-13T19:57:45.640 回答