• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AS400へのphpによるJDBC接続)

AS400へのphpによるJDBC接続

このQ&Aのポイント
  • AS400(System i)で動作している基幹システムのデータを照会し、PCにDownloadする処理のためのAS400へのphpによるJDBC接続について困っています。
  • WindowsServer上のphpで動作するWebアプリを使ってAS400のデータを照会し、PCにDownloadする処理を作ろうとしていますが、AS400へのアクセスができずにエラーが発生しています。
  • IBMに問い合わせてもJDBCドライバに関しては教えてもらえないため、WindowsServer上のphpでdb2関数を追加インストールする必要があるかどうか知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

phpからJDBCドライバーは使えんぞなもし(ひょっとしたらそういうエクステンションがあるのかも知れないけど)。 phpではデータベースに対する接続はDBMSごとにエクステンションというもので管理している。 エクステンションというのは、phpのスクリプトから呼び出せる関数を増やしてくれる仕組みだ。 現在DB2エクステンションが登録されていないためにdb2_connectという関数が未定義になっている訳だ。 で、エクステンションの設定はphp.iniで行う。 参考URLを二つほど紹介しておきましょう。 http://www.php.net/manual/ja/book.ibm-db2.php http://pecl.php.net/package/ibm_db2 いっそのことIBM DB2 ODBCドライバーを入手してWindows上でODBCによる接続設定を行い、phpからはODBCブリッジを利用して接続するという方が楽かも。もちろんODBCの制限に引っ張られるけど。

hatsuzo
質問者

お礼

anmochi コメント有難うございました。 JDBCは使えないんですか... IBMのアンサーラインではJDBCドライバか、IBM DB2 Connectを使えということを言っていました。前者はIBM製品ではないので後者のほうを薦めていました。 通信の問題もエクステンションが解決してくれるのでしょうか? でもこれはプロトコルでいうと下層の話だと思いますので、このエラーは関数がphpに実装されていないというエラーのようなので、教えて頂いた拡張モジュールをインストールする必要はあるんですね。 コンパイルされたDLLが無いようなので、コンパイルするのが私にはハードルが高そうですが調べてみます。 どうも有り難うございました。

hatsuzo
質問者

補足

補足します。 JDBCではなく、ODBCドライバを使ったら、難なく接続できました。 ただし、phpのdb2関数ではなく、odbc関数を使う形になります。 拡張モジュールをインストールしなくても標準で使えました。 db2関数を使った場合とのレスポンス比較は判りませんが、取りあえず繋がるには繋がりましたのでこれで作り込んでみたいと思います。 両方ためされた方がおられましたら、情報頂けるとありがたいです。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

> IBMのアンサーラインではJDBCドライバか、IBM DB2 Connectを使えということを言っていました。 > 前者はIBM製品ではないので後者のほうを薦めていました。 > 通信の問題もエクステンションが解決してくれるのでしょうか? ノー、通信に責任を持つのはIBM DB2 Connectの仕事。 IBM DB2エクステンションはPHPとIBM DB2 Connectの橋渡しをするだけ。 しかしながら、IBM DB2 Connectって管理ツールじゃないですか? IBM Data Server Clientというのがあればいいんじゃなかろうか。 いや、私も開発はJDBCでしかやったこと無いので正確なツール名は分からないのだが、 とにもかくにも、まずIBM DB2サーバーとIBM DB2クライアントがあって、例のエクステンションは IBM DB2クライアントの機能をPHPから直接呼び出せるようにするためのいわばラッパーなのです。 なので、まずそのWindowsサーバーにJDBCじゃないIBM DB2クライアントを入れるのが先決。 ODBCで接続できているという事は既に入っているはず(DB2 ODBCドライバーもODBCに対してDB2クライアントの機能を提供するもの)なので、誰かにエクステンションをコンパイルしてもらうだけでdb2_connect系が使えるようになるはずですよ。

hatsuzo
質問者

お礼

コメント有難うございました。 お恥ずかしいですが、コンパイルの仕方もよく判っていないので安直なODBCのほうを選びました。勉強になりました。どうも有難うございます。

すると、全ての回答が全文表示されます。

関連するQ&A