PHP致命错误:调用未定义的函数mssql_connect()
我从来没有使用过PHP,并试图连接到运行IIS7和PHP5.3的Windows机器上的SQL Server 2008实例。
我已经从C:\Program Files (x86)\PHP\ext
下载并安装了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需要做什么? 我确定这是一个真正的愚蠢,我错过了…
FULL 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
我刚刚尝试在我的开发服务器上安装该扩展。
首先,确保扩展已正确启用。 您的phpinfo()
输出似乎不完整。
如果确实安装正确,你的phpinfo()
应该有一个如下所示的部分:
如果你没有在你的phpinfo()
获得该部分。 确保你使用的是正确的版本。 有扩展的非线程安全和线程安全的版本。
最后,检查你的extension_dir
设置。 在默认情况下,它是这样的: extension_dir = "ext"
,在大多数情况下,它可以正常工作,但如果不尝试: extension_dir = "C:\PHP\ext"
。
================================================== =========================
编辑给出新的信息:
您正在使用错误的function。 mssql_connect()
是Mssql扩展的一部分。 您正在使用Microsoft的扩展名,因此使用sqlsrv_connect()
作为Microsoft驱动程序的API,请查看SQLSRV_Help.chm
,在SQLSRV_Help.chm
压缩扩展时应将其提取到ext
目录。
php.ini可能需要阅读: extension=ext\php_sqlsrv_53_nts.dll
或者将文件移动到与php可执行文件相同的目录中。 这是我在本周做了php5安装以获得odbc_pdo的工作。 :P
此外,这看起来不正确的phpinfo()输出。 如果你制作一个带有内容的文件
<? phpinfo(); ?>
<? phpinfo(); ?>
并访问该页面,HTML输出应该显示几个部分,包括一个带有加载的模块。 (编辑添加:如上面接受的答案截图所示)
我正在使用IIS和MySQL(直接下载,没有wamp或xampp)我的PHP安装在c:\ php我得到的错误“调用未定义的函数mysql_connect()”对我来说,extension_dir的变化工作。 这就是我所做的。 在php.ini中,本来我有这条线
; 在Windows上:extension_dir =“ext”
我把它改成:
; 在Windows上:extension_dir =“C:\ php \ ext”
它的工作。 当然,我也做了其他的事情,比如取消注释dll扩展等,正如其他评论中所解释的那样。