質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Zend Framework

Zend Frameworkは、PHP5で記述されたWebアプリケーションフレームワークです。Zend Frameworkには守らなければならない開発の規定というものは存在せず、MVCなどの複数のコンポーネントを提供しています。

Q&A

1回答

3384閲覧

AS400(ibm i)上で稼働しているPHPアプリをWindows環境へ移行する際にエラー

motuo

総合スコア3027

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Zend Framework

Zend Frameworkは、PHP5で記述されたWebアプリケーションフレームワークです。Zend Frameworkには守らなければならない開発の規定というものは存在せず、MVCなどの複数のコンポーネントを提供しています。

0グッド

2クリップ

投稿2016/07/20 07:02

###前提・実現したいこと
現在、AS400(V6R1)上で稼働しているPHPのWebアプリケーションをWindows環境に移行したいと考えております。
PHPアプリケーションはzend server(1.10.1)上で稼働しており、PHPのバージョンは5.3.1です。

このアプリケーションをWindows上で稼働させるにあたり、Xampp(1.8.2)を使って試したところ以下のエラーメッセージが出力されました。しかしながら、extensionは正常に読み込まれている状態であり、PHP Infoにもibm_db2が表示されています。
上記のエラーを解決する手立てをご存知の方はいらっしゃいますでしょうか。

###発生している問題・エラーメッセージ
2016-07-20T15:33:21+09:00 DEBUG (7): The IBM DB2 extension is required for this adapter but the extension is not loaded
C:\xampp\php\pear\Zend\Db\Adapter\Abstract.php(448): Zend_Db_Adapter_Db2->_connect()

###該当のソースコード
Zend\Db\db2.phpの下記の部分でエラーとなっています。
if (!extension_loaded('php_ibm_db2')) {
/**
* @see Zend_Db_Adapter_Db2_Exception
*/
require_once 'Zend/Db/Adapter/Db2/Exception.php';
throw new Zend_Db_Adapter_Db2_Exception('The IBM DB2 extension is required for this adapter but the extension is not loaded');
}

###試したこと
上記のソース部分でエラーになっているのは分かったので、extension_loades('ibm_db2')としたところ、上記のエラーは発生しなくなりましたが、db2_connect(): Incorrect option setting passedというメッセージに変わっただけでした。
もしかしたら、読み込ませるdllの種類の問題に問題があるのかもしれませんが、PECLには他に使えそうなDLLを見つける事が出来ませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
言語:PHP
FW:Zend server

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ぜーんぜん分からないので、外しまくってるかもしれません。
同じようなエラーに悩んでいる人がstackoverflowにいました。
http://stackoverflow.com/questions/23693463/zf2-and-db2-connection-issue

Zend\Db\Adapter\Adapter の設定のように読み取れますが・・・
何せZend Frameworkを使ったことがないので・・・

投稿2016/07/20 09:29

shi_ue

総合スコア4437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

motuo

2016/07/21 01:47

回答を頂き、ありがとうございました。上記を参照した結果、下記の部分($conn_func_name)で処理が異常終了している事が分かりました。 #ソース抜粋 if ($this->_config['host'] !== 'localhost' && !$this->_isI5) { // if the host isn't localhost, use extended connection params $dbname = 'DRIVER={IBM DB2 ODBC DRIVER}' . ';DATABASE=' . $this->_config['dbname'] . ';HOSTNAME=' . $this->_config['host'] . ';PORT=' . $this->_config['port'] . ';PROTOCOL=' . $this->_config['protocol'] . ';UID=' . $this->_config['username'] . ';PWD=' . $this->_config['password'] .';'; $this->_connection = $conn_func_name( $dbname, null, null, $this->_config['driver_options'] ); } else {     ~~~~ } #試している事 AS400からWindows環境への移行なので、最初のODBCを使用する分岐にしています。 各パラメタは以下の通り設定しています。 DATABASE⇒ODBCのデータソース名 HOSTNAME⇒AS400のIPアドレス PORT⇒8471(DB2のデフォルトポート) PROTOCOL⇒TCPIP UID⇒DB2へのログインID PWD⇒パスワード また、'driver_options'は配列で以下の通り設定しています。 ["i5_commit"]=> "DB2_I5_TXN_READ_COMMITTED" ["i5_naming"]=> "DB2_I5_NAMING_ON" ["autocommit"]=> &int(1) ["DB2_ATTR_CASE"]=> int(1) ※これが上記アドバイスにあった、DB2_CASE_LOWERの指定です。 それでも、Incorrect option setting passedのエラーが出てしまっています。 DB2への接続文字列が問題かもしれません。 もし、アドバイスがありましたらお願いします。
shi_ue

2016/07/21 02:43

コメントではコードブロックが効かないため、このようなものは質問本文に追記してくださいね。
shi_ue

2016/07/21 02:46

まず、症状の切り分けのため、ODBC接続がちゃんとできているか確認したほうがよさそうです。例えばExcelなどでODBC接続が行なえるか確認してみてください。
motuo

2016/07/21 04:34

上記、コードの件、ご指摘ありがとうございました。以後、気を付けます。 ODBC接続については、問題なくデータの取得と更新が出来る事を確認しました。 接続文字列を使って接続する場合は、方式が違うのかもしれません。引き続き、調査を続けています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問