web-dev-qa-db-ja.com

PHP致命的エラー:未定義関数mssql_connect()の呼び出し

PHPを使用したことがないので、IIS7およびPHP5.3を実行しているWindowsマシン上のSQL Server 2008インスタンスに接続しようとしています。

C:\Program Files (x86)\PHP\extの-​​ here から_SQLSRV30.EXE_をダウンロードしてインストールしました。これをC:\Program Files (x86)\PHP\php.iniに追加しました。

_extension=php_sqlsrv_53_nts.dll
_

その後、サーバー全体を再起動しました。ログファイルに次のような致命的なエラーが引き続き表示されます。

_PHP Fatal error:  Call to undefined function mssql_connect()
_

IIS7/Windows Server 2008で実行されているPHP 5.3からMicrosoft SQL Server 2008に接続するために何をする必要がありますか?.

フルPHPINFO->http://demo.mandibleweb.com/zapified/hello.php

phpinfo():

_PHP Version 5.3.10





System 

Windows NT MWD001 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 



Build Date 

Feb 2 2012 20:10:58 



Compiler 

MSVC9 (Visual C++ 2008) 



Architecture 

x86 



Configure Command 

cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\Oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\Oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\Oracle\instantclient11\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet" "--with-mcrypt=static" "--disable-static-analyze" 



Server API 

CGI/FastCGI 



Virtual Directory Support 

disabled 



Configuration File (php.ini) Path 

C:\Windows 



Loaded Configuration File 

C:\Program Files (x86)\PHP\php.ini 
_
18
Greg

開発サーバーにその拡張機能をインストールしようとしました。

最初に、拡張機能が正しく有効になっていることを確認します。 phpinfo()出力は完全ではないようです。

実際に正しくインストールされている場合、phpinfo()には次のようなセクションが必要です。 enter image description here

phpinfo()にそのセクションが表示されない場合。正しいバージョンを使用していることを確認してください。拡張機能には、スレッドセーフでないバージョンとスレッドセーフなバージョンの両方があります。

最後に、_extension_dir_設定を確認します。デフォルトでは、これは_extension_dir = "ext"_です。ほとんどの場合は正常に動作しますが、試さない場合は_extension_dir = "C:\PHP\ext"_です。

================================================== =========================

新しい情報を指定して編集:

間違った機能を使用しています。 mssql_connect()Mssql 拡張の一部です。 Microsoftの拡張機能を使用しているため、sqlsrv_connect()を使用します。MicrosoftドライバーのAPIについては、拡張機能を抽出したときにextディレクトリに抽出される_SQLSRV_Help.chm_を参照してください。

31
F21

php.ini おそらく読む必要があります:_extension=ext\php_sqlsrv_53_nts.dll_

または、ファイルをphp実行可能ファイルと同じディレクトリに移動します。これは、odbc_pdoを機能させるために今週php5をインストールしたことです。 :P

さらに、それは適切なphpinfo()出力のようには見えません。内容を含むファイルを作成する場合
<? phpinfo(); ?>およびそのページにアクセスすると、HTML出力には、ロードされたモジュールを含むセクションなど、いくつかのセクションが表示されます。 (追加して編集:上記の回答のスクリーンショットに示すように)

1
Chris K

私はIIS and mysql(直接ダウンロード、wampまたはxamppなし)を使用しています。私のphpはc:\ phpにインストールされていました。 extension_dirの変更が機能しました。これが私がやったことです。php.iniでは、元々、

; Windowsの場合:extension_dir = "ext"

私はそれを次のように変更しました:

; Windowsの場合:extension_dir = "C:\ php\ext"

そしてそれは働いた。もちろん、他のコメントで説明されているように、dll拡張機能のコメントを外すなど、他のことも行いました。

0
M Shiraz Baig