我之前从未使用过php,并且正在尝试连接到运行IIS7和PHP5.3的Windows计算机上的SQL Server 2008实例。
我已经SQLSRV30.EXE
从C:\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}}
答案 0 :(得分:31)
我刚尝试在我的开发服务器上安装该扩展程序。
首先,确保正确启用了扩展程序。您的phpinfo()
输出似乎不完整。
如果确实安装得正确,您的phpinfo()
应该有一个如下所示的部分:
如果您未在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扩展等,正如其他人的评论中所解释的那样。