PHP致命错误:调用未定义的函数mssql_connect()

时间:2012-04-03 03:44:27

标签: php sql-server iis iis-7

我之前从未使用过php,并且正在尝试连接到运行IIS7和PHP5.3的Windows计算机上的SQL Server 2008实例。

我已经SQLSRV30.EXEC:\Program Files (x86)\PHP\ext下载并安装了C:\Program Files (x86)\PHP\php.ini,将其添加到extension=php_sqlsrv_53_nts.dll

PHP Fatal error:  Call to undefined function mssql_connect()

然后重新启动整个服务器。我的日志文件中仍然会出现致命错误:

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 

从IIS7 / Windows Server 2008上运行的PHP 5.3连接到Microsoft SQL Server 2008需要做什么?我确定我真的很蠢,我错过了......

完整的PHPINFO - > here

phpinfo():

{{1}}

3 个答案:

答案 0 :(得分:31)

我刚尝试在我的开发服务器上安装该扩展程序。

首先,确保正确启用了扩展程序。您的phpinfo()输出似乎不完整。

如果确实安装得正确,您的phpinfo()应该有一个如下所示的部分: enter image description here

如果您未在phpinfo()中找到该部分。确保您使用的是正确的版本。扩展名有非线程安全版本和线程安全版本。

最后,检查您的extension_dir设置。默认情况下,这是:extension_dir = "ext",大部分时间都可以正常工作,但如果没有尝试:extension_dir = "C:\PHP\ext"

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

EDIT提供新信息:

您使用的功能错误。 mssql_connect()Mssql扩展程序的一部分。您正在使用microsoft的扩展,因此使用sqlsrv_connect()作为Microsoft驱动程序的API,请查看SQLSRV_Help.chm,当您解压缩扩展时,应将ext解压缩到{{1}}目录。

答案 1 :(得分:1)

php.ini 可能需要阅读: extension=ext\php_sqlsrv_53_nts.dll

或者将文件移动到与php可执行文件相同的目录。这是我本周对我的php5安装所做的,以使odbc_pdo正常工作。 :P

此外,这看起来不像正确的phpinfo()输出。如果您创建包含内容为<? phpinfo(); ?>的文件并访问该页面,则HTML输出应显示多个部分,包括一个带有已加载模块的部分。 (编辑添加:如上面接受的答案的屏幕截图所示)

答案 2 :(得分:0)

我正在使用IIS和mysql(直接下载,没有wamp或xampp) 我的php安装在c:\ php中 我收到“调用未定义函数mysql_connect()”的错误 对我来说,extension_dir的更改有效。 这就是我做的。 在php.ini中,最初,我有这条线

在Windows上:  extension_dir =“ext”

我把它改为:

在Windows上:  extension_dir =“C:\ php \ ext”

它有效。当然,我做了其他的事情,比如取消注释dll扩展等,正如其他人的评论中所解释的那样。