0

申し訳ありませんが、Zend Framework 2 はまったく初めてで、いくつかのチュートリアルを使用して、DB 接続を次のように接続しようとしています。

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 に答える