dポイントプレゼントキャンペーン実施中!

PHPで FirebirdのDBにアクセスするために、以下のようなスクリプトを作成しました。

 $host = 'localhost:D:\testDB\test3.fdb';
 $username = 'SYSDBA';
 $password = 'masterkey';
 $dbh = ibase_connect($host, $username, $password);
 $stmt = 'SELECT * FROM test_table';
 $sth = ibase_query($dbh, $stmt);
      :

これをWEBサーバで動作させるとうまくいくのですが、コマンドラインから実行すると以下メッセージが出てDBに接続することができません。
(ibase_connect関数のもどりで null が戻ってきています)

Warning: ibase_connect(): Unable to complete network request to host "localhost". Failed to locte host machine. Undefined service gds_db/tcp.

DBの指定でlocalhostをIPアドレス直接入力したり、DBファイルのパスのみの指定にして試してみたのですが、やはりブラウザではOK、コマンドラインでは駄目でした。
又、PDOを使ってアクセスしてみても、コマンドラインから実行した場合は駄目でした。

コマンドラインからDBアクセスできるように、何か必要な設定などがあるのでしょうか。

 環境
  PHP:5.2.4
  DB:Firebird2.0.3
  WEBサーバ:Apache2.2.4
  OS:Windows2000

よろしくお願いします。

A 回答 (1件)

使ったことがないのですが、名前解決が出来ないように見受けられます。


localhostではなく、127.0.0.1にしてみてはどうでしょうか?

この回答への補足

IPアドレスを直接指定しても同じ結果です。
いろいろ調べてみて、以下の方法でとりあえずDBアクセスすることができました。

 WINNT\system32\drivers\etc\services に下の1行を追加する
 gds_db 3050/tcp

しかし、なぜブラウザ経由がOKでコマンドラインからは駄目なのかわかりません。

補足日時:2007/10/09 13:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!