Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • 締切済み

apacheからのodbc接続

php5 からコマンドラインではodbc経由でsqlserverに接続は出来るのですが、 apache2.0をインストールして、webを通して接続すると、 Fatal error: Call to undefined function: odbc_connect() というエラーが出ます。 これは、PHP,apacheのどこか設定ができていないのでしょうか? ちなみに、webを通して(odbc関数を使わない)phpの動作は確認できています。

みんなの回答

  • angband
  • ベストアンサー率51% (86/168)
回答No.3

pdoとつくのはまた違うエクステンションです。 そっちだとodbc経由でsqliserverに接続できるとは思いますが、 odbc_connectのようなodbc自体の関数の代わりに、PDOの 共通インターフェースを使う必要があります。 pdo以外のodbc.dllエクステンションは、php.ini内になさそうですか?

ryugougou
質問者

お礼

自己解決できました。 システムDNSを登録したら解決できました。 (ローカルDNSの登録しかしていませんでした) いろいろご教授いただきありがとうございました。

ryugougou
質問者

補足

pdo以外のodbc.dllエクステンションは、php.ini内でみあたりませんでした

すると、全ての回答が全文表示されます。
  • angband
  • ベストアンサー率51% (86/168)
回答No.2

Windowsなんですね。 では php.iniというPHP設定ファイルがあると思うのですが、 その中に odbc.dll のようなエクステンションがコメントアウト されていると思います。 そのコメントを外してapacheを再起動すればodbcが 使えるようにならないでしょうか。

ryugougou
質問者

お礼

ご回答ありがとうございます。 まだ、うまくいきません。 もう少しご教授お願いいたします。

ryugougou
質問者

補足

php.ini中の下記エクステンションのコメントをはずし、apacheを再起動しても状況は変わりませんでした。 extension=php_pdo_odbc.dll

すると、全ての回答が全文表示されます。
  • angband
  • ベストアンサー率51% (86/168)
回答No.1

apacheモジュールのphpの内部にodbc_connect()関数がない、という エラーみたいですね。 ODBCのエクステンションを有効にする必要があると思います。 その方法ですがOSやapacheのバージョン、apacheの構築方法などの 環境によって対応が若干違うので補足お願いします。 環境が不明なため以下は一般的な話になります。 コマンドラインで # httpd -l してみるとapacheに静的に組み込まれているモジュール一覧が確認できます。 ここにodbc.soなどがないならば、apacheの設定ファイル内で odbc.so とか odbc.dllみたいな名前のエクステンションを探して、動的に組み込む必要が あります。おそらくコメントになってるのをコメント外してapacheを再起動する だけです。

ryugougou
質問者

お礼

ご回答ありがとうございます。 説明が不足していましたので補足を追加しました。

ryugougou
質問者

補足

補足します。 OSはWindowsXP、apacheのバージョンは2.0、PHPのバージョンは5.2を使用しています。

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

関連するQ&A