• ベストアンサー

classでエラー

IIS5+PHP4.4.0+MSDEで、開発しているのですが、 テスト環境では、動いていたソースを、本番環境に動かしたら、 Notice: Undefined variable: m_strDBName in C:\xxx.php on line 110 Fatal error: Call to undefined function: mssql_pconnect() in C:\xxx.php on line 119 というエラーが出てしまいました。 もちろん、テスト環境と、本番環境は、同じ環境で、 PHP.iniもコピーしました。(インストールパスも同じです) エラー部分は、 require_once("xxx.php"); で、呼び出し、 class clsXXX { var $m_strDBName; function clsXXX() { $this->$m_strDBName = "mmdb"; return; } } としています。 どうすれば、解決できるでしょうか?

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

$this->$m_strDBName = "mmdb"; は $this->m_strDBName = "mmdb"; だと思います

w0a15455
質問者

お礼

ありがとうございます。 確かに、1つエラーがきました。 Fatal error: Call to undefined function: mssql_pconnect()のエラーは、消えません。 こっちは、なぜでしょうか?

w0a15455
質問者

補足

エラー場所のソースは、下記のようになっています。 もしかしたら、間違ってるかなぁ? $objDatabase = mssql_pconnect("127.0.0.1", "sa", "sa");

その他の回答 (2)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

マニュアルには この拡張モジュールは、PHPがインストールされているシステムにMS SQL クライアントツールのインストールを要します。クライアントツールは、 MS SQL Server CDまたは\winnt\system32から ntwdblib.dllをPHPシステム の\winnt\system32にコピーすることによりインストール可能です。 ntwdblib.dllのコピーではアクセスのみが可能で す。クライアントの設定は、全てのツールのインストールが必要です。 と書いてあります。 ntwdblib.dllのコピー先を上記の場所に変えてみてはどうでしょうか

w0a15455
質問者

お礼

system32に変更してみましたが、同じ結果でした。 もちろん、コピー後、再起動しています。 MSSQLServerのクライアントってダウンロードとかできないのでしょうか?

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>undefined function… ということだから、MSSQL関連のインストールか設定がちゃんとされていないのだと思います。

w0a15455
質問者

お礼

ありがとうございます。 何を確認したら、よいでしょうか? PHP.iniで extension=php_mssql.dll にし、php_mssql.dllとntwdblib.dllをphp.exeのある フォルダに入れました。 ローカルで、c:\php\php.exe xxx.phpと実行すると、 正常に値が戻ってきます。 なにが、おかしいのでしょうか?

関連するQ&A