• 締切済み

PHPからODBCによるOracle10gへの接続

Windows2003Serverに展開しているPHPベースのページからODBCを経由して、Oracle10gへアクセスしようとすると以下のようなエラーが表示されてしまいます。 -------------------------------------------- Warning: odbc_connect(): SQL error: 指定されたドライバはシステム エラー 5 (Oracle in OraDb10g_home1) のため読み込めませんでした。, SQL state IM003 in SQLConnect in c:\php\pear\DB\odbc.php on line 129 データベースの接続に失敗しました。 -------------------------------------------- コントロールパネルのODBC設定でのテストはうまくいくんですが・・。 同様の環境で同様なトラブルの原因と対処策をご存じの方がいらっしゃったら、ご教授いただけないでしょうか?

  • Oracle
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

IM003は、ドライバの呼び出しに失敗した場合のエラーです。 デスクトップ上でテストに通過しても、IISやapache等のサービスプロセスから ODBCやオラクルクライアントが使える事にはなりません。 webサーバの実行ユーザを確認し、それに対してアクセス権があるかどうか、 環境変数PATHが適正か確認して下さい。

arumakan
質問者

お礼

ご指摘の通り、ドライバ呼び出しが原因だと認知はしているのですが、PHPに関する知識が乏しくて。 IISは匿名アクセスを許可してますし、PATHもきちんとセットされています。 ちなみにWindows2003+Oracle9iだと動作するのですが、Oracle10gの場合はOracle9iとは、PHPのコーディングで注意(修正)しなければならないということでしょうか。 謎が深まります。

関連するQ&A

  • ネットワークドライブ経由でODBC

    WindowsXP、Apache2/2.0.55、PHP/5.0.5の環境で、ODBCを介してMicrosoft Access(*.mdb)にアクセスするphpを作ろうと思ってます。 データソースがローカルにあるときは上手くいくのですが、ネットワークドライブに割り当てられた共有にあるとウォーニングが出て、データベースに接続できません。 どうすれば接続できるでしょうか?参考にしたURLはhttp://www.phpfreaks.com/print.php?cmd=tutorial&tut_id=61です。 出たウォーニングは Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Microsoft Access Driver] パス '(不明)' は正しくありません。パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。, SQL state S1009 in SQLConnect in C:\Program Files\Apache Group\Apache2\htdocs\odbc\odbc.php on line 2 Could Not Connect to ODBC Database! です。

  • Oracle10g・・ODBCで接続できない

    Oracle10gのStandardEditionをサーバーにインストールし、データベースを作成しました。 それに対してクライアントにも10gをインストールし、ローカルメソッド名を設定して、接続テストも通りました。SQL*Plusを起動して接続することもできました。 ですが、Accessを使ってテーブルの中身を見ようと思い、ODBCを設定したのですが接続テストをすると固まってしまいます。どうすればODBCで接続できるようになるのでしょうか?

  • PHPのODBC関数

    PHPのODBC関数でデータベースに接続したいのですが、 下記のエラーが発生します。PHPのモジュール追加が必要なのでしょうか? またそれはどのようなものでしょうか?よろしくお願いします。 Fatal error: Call to unsupported or undefined function odbc_connect()

  • oracle10gと9iの違いについて

    お世話様です。 最近、DBサーバをoracle9iからoracle10gに変えることになったのですが、 oracle9iで select LEVEL, 項目1, 項目2 FROM テーブル1 のSQLが動いていたのですが、 oracle10gでは、このSQLが動かなくなり、 connect by区を指定するようにエラーが出てくるようになってしまいました。 oracleのバージョンによって、動かなくなると言うことはあるのでしょうか? それともORACLEの設定を変更すると動くようになるのでしょうか。 ご教授よろしくお願い致します。

  • ODBCを使用したSQLの使い方を教えてほしいです

    タイトルの内容を調べているのですが、上手くヒットせず、 同じように記述してもエラーになってしまいます。 よくわかりませんので、教えてほしいです。 odbc_connectは通っているようなので、接続はできている と思います。 $rs=odbc_exec($conn,$sql);にてエラーになるようです。 Warning: odbc_exec():が出ます。 よろしくお願いします。 print ("<html>"); print ("<body>"); $conn=odbc_connect('m_db','',''); if (!$conn) { exit("Connection Failed: " . $conn); } $sql = "SELECT * FROM test_table"; $rs=odbc_exec($conn,$sql); if (!$rs) { exit("Error in SQL"); } echo "<table><tr>"; echo "<th>Companyname</th>"; echo "<th>Contactname</th></tr>"; while (odbc_fetch_row($rs)) { $compname=odbc_result($rs,"CompanyName"); $conname=odbc_result($rs,"ContactName"); echo "<tr><td>$compname</td>"; echo "<td>$conname</td></tr>"; } odbc_close($conn); echo "</table>"; print ("</body>"); print ("</html>");

    • ベストアンサー
    • PHP
  • ODBC接続に関して

    教えて下さい。 Oracle Database 11g Express Edition をインストールし、そこにODBC経由で 接続しようと考えていますが、どうも思ったように接続ができません。 ODBCは、  1.[スタート]→[コントロールパネル]→[管理ツール]→[データ ソース (ODBC)]を選択。  2.ODBCデータソースアドミニストレータのユーザDSNタブの追加ボタンを選択。  3.データソースの新規作成から「Oracle in XE」を選択。 して設定してあります。 Oracle側にユーザとして、"ABC"というユーザ(ワークスペース管理者)を作成、そのユーザで、 Oracle ODBC Driver ConfigurationのUserIDを追加しましたが、接続できません。  Unable to connect  SQLState=28000  [Oracle][ODBC][Ora]ORA-01017 ; invalid username/password ;logon  denied というエラーが表示されます。 但し、SYSTEMというユーザでは接続できます。 ユーザ名/パスワードは間違っていませんが、何が問題でしょうか??? そもそもの考え方が間違っているでしょうか、、、 教えて下さい。 よろしくお願いします。

  • PHP5とORACLE10の接続方法

    参考意見を頂ければと思い質問しました。 現在PHP5+ORACLE10gRelease2でDB接続をしようと思っています。 またORACLEを使用したことがなく調べている状況です。 Oracle8関数の使用やPEAR、PDOなど何種類かあるよう ですが、実際現時点でどういった接続方法が一般的なのでしょうか。 環境としてはLinuxでwebサーバ、DBサーバを分けて接続予定です。 アドバイス等ございましたらよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP5+Oracle10gのconfigureについて

    Linuxで、configureをして、PHP5+Oracle10gをインストールしようと思っていますが、Webなどで検索して、 # export ORACLE_HOME=/home/oracle/product/10.2.0/db_1 # configure --with-oci8=$ORACLE_HOME ・・・・ というように、記述があったのですが、WebサーバとDBサーバを 分ける場合は、--with-oci8の記述は、どうすればよいのでしょうか?

    • 締切済み
    • PHP
  • Webシステムをローカルで再現したい(PHP+MySQL、PEAR)

    とある必要性があって、外注で作ったWebシステム(PHP+MySQL) (システム概要:SSLあり (1) ID認証→(2) ログイン→(3) 情報登録のような流れ) を、自分のローカル環境で再現しようとPHPファイルをそのままのディレクトリ構成で ローカルにコピーしてみたのですが、ID、Passをsubmitすると次のエラーとなります。 Warning: db_Connect(DB.php) [function.db-Connect]: failed to open stream: No such file or directory in C:\Inetpub\wwwroot\SDBConnect.php on line 42 Fatal error: db_Connect() [function.require]: Failed opening required 'DB.php' (include_path='.;c:/php/includes;c:/php/pear') in C:\Inetpub\wwwroot\SDBConnect.php on line 42 引っかかっている SDBConnect.php の42行目を確認してみると、 DB接続、PEARというものを使っているみたいです。 (なお、エラーにあるDB.phpなるファイルも、サーバーにはみつからないです) Webで調べたところ、まったく同じ症状でコケた事例をみかけたのですが、 http://mugon.dip.jp/mt/archives/200507/200507102141.php ここに書かれている: 「やったこと  rootでDBをインストール   #pear install DB」 ・・というメモの意味がさっぱりわかりません。 具体的になにをすればよいのでしょうか? ■ 稼動しているシステムの環境: レンタルサーバー Apache (バージョンわかりません) PHP 4.3.10 MySQL 4.0.25 ■ 再現したいわたしのローカル環境 IIS 5.1 (XP SP2) PHP 5.0.4 Win MySQL mysql 4.0.14b Win  #DBのテーブルレイアウトなどはきちんと移行できていると思っています。 ■わたしの知識レベル: HTMLタグ打ち、初歩的なSQLを理解できる程度、PHP他プログラミング知識なし

    • ベストアンサー
    • PHP
  • AccessからOracleへのODBC接続

    現在、Oracleで作成したデータベースに接続して 検索するソフトを、Accessで作成してあります。 Oracleに接続をするのに、 ODBCを使用しているのですが、 最初依頼があったときは「Oracle8」のときだったので、 「Oracle8」のみ接続可能なプログラムが組んであり、 「Oracle10g」の入っているPCでは接続できないという問題が発生しました。 そこで、「Oracle8」と「Oracle10g」とも接続出来るように プログラムを書き換えたのですが、 現在は「Oracle11g」が最新になっていると思うので、 ゆくゆくはそれに対応しなければならないなあ、と思っています。 そうすると、Oracleがバージョンアップするたびに、 ソフトのプログラムを書き換えなくてはならなくなり、 効率的ではないな…と思いまして… Oracleのバージョンが違っていても、 自分のPCのOracleのバージョンを自動認識して、 AccessからOracleへ接続する方法はあるのでしょうか? ちなみに現在は、TableDefsコレクションを使用して、 まず、Oracle8で繋ぎにいき、それでエラーが起これば Oracle10gで繋ぎにいく、という処理を行っています。 【参考コード】 dim db as object dim tdf as object set db = CurrentDb set tdf = TableDefs("テーブル名") tdf.Connect = "(※テーブルのプロパティの説明のところに入る文)" tbf.RefreshLink (※ここが8と10gで違ってくる) よろしくお願いします。