UbuntuシステムにDB2データベースをセットアップしました。DB2インスタンスに正常にログインしてデータベースを作成しました。また、いくつかのレコードを挿入しました。
これで、同じサーバー上にZF2アプリケーションをセットアップし、アプリケーションをDB2インスタンスに接続したいと思います。いくつかのオンラインドキュメントを読んだ後、私はこのような構成設定を取得します。
'Zend\Db\Adapter\Adapter' => function ($sm) use ($dbParams) {
return new Zend\Db\Adapter\Adapter(array(
'driver' => 'IbmDb2',
'hostname' => '*LOCAL',
'database' => 'dbname',
'username' => 'username',
'password' => 'password',
'driver_options' => array(
'i5_naming' => 'DB2_I5_NAMING_ON',
'i5_libl' => '*LIBL'
),
'platform_options' => array('quote_identifiers' => false)
));
},
しかし、それは警告を与えます
Warning: db2_connect() [<a href='function.db2-connect'>function.db2-connect</a>]: Incorrect option setting passed in
そして、空の結果セットを与えます。
次に、の両方のオプションをコメントアウトした後driver_options
。警告は消えましたが、それでも結果セットは空です。ホスト名もコメントアウトしてみましたが、結果セットには影響しません。
IBMMachineではなくUbuntuSystemなので、接続する設定が異なる可能性がある場合はどうでしょうか。
更新:問題は解決しました。Answermyselfの説明。
更新:問題は解決しました。DB2がレコードを返す方法の多くの問題です。DB2は大文字でフィールドを返しますが、私のZF2アプリケーションModelsは小文字で処理します。したがって、リストにレコードは表示されません。動作させるには、以下のようなデータベース設定にオプションを追加する必要があります。
'driver_options' => array(
'DB2_ATTR_CASE' => DB2_CASE_LOWER
),
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加