既然MSSQL已被弃用,如何让SQLSRV扩展与PHP一起工作?

既然MSSQL已被弃用,如何让SQLSRV扩展与PHP一起工作?,php,sql-server,dll,Php,Sql Server,Dll,我升级到PHP5.3,并注意到PHP_mssql.dll缺失。在谷歌搜索了一下之后,5.3似乎已经放弃了对mssql的支持。所以我从微软下载了驱动程序,但我似乎无法让它工作 我在窗户上。解压PHP5.3的ext目录中的文件后,我需要做什么 MSSQL扩展在使用PHP5.3或更高版本的Windows上不再可用。 SQLSRV,MS SQL的替代驱动程序,可从Microsoft获得:» 下载后,请按照本页的说明进行操作: 简言之: 将驱动程序文件放在PHP扩展目录中。 修改php.ini文件以

我升级到PHP5.3,并注意到PHP_mssql.dll缺失。在谷歌搜索了一下之后,5.3似乎已经放弃了对mssql的支持。所以我从微软下载了驱动程序,但我似乎无法让它工作

我在窗户上。解压PHP5.3的ext目录中的文件后,我需要做什么

MSSQL扩展在使用PHP5.3或更高版本的Windows上不再可用。 SQLSRV,MS SQL的替代驱动程序,可从Microsoft获得:»

下载后,请按照本页的说明进行操作:

简言之:

将驱动程序文件放在PHP扩展目录中。
修改php.ini文件以包含驱动程序。例如:

extension=php_sqlsrv_53_nts_vc9.dll  
重新启动Web服务器

另请参见(从该页复制)

SQLSRV扩展的PHP手册位于,并提供以下内容供安装:

通过将适当的DLL文件添加到PHP扩展目录和PHP.ini文件的相应条目,可以启用SQLSRV扩展。SQLSRV下载附带了几个驱动程序文件。您使用哪个驱动程序文件取决于3个因素:您使用的PHP版本,您使用的是线程安全还是非线程安全的PHP,以及您的PHP安装是使用VC6还是VC9编译器编译的。例如,如果您运行的是PHP5.3,您使用的是非线程安全的PHP,并且您的PHP安装是使用VC9编译器编译的,那么您应该使用PHP_sqlsrv_53_nts_VC9.dll文件。(如果使用IIS作为web服务器,则应使用使用VC9编译器编译的非线程安全版本)。如果您运行的是PHP5.2,您使用的是线程安全的PHP,并且您的PHP安装是使用VC6编译器编译的,那么您应该使用PHP_sqlsrv_52_ts_VC6.dll文件

驱动程序。下载。提取文件并使用以下选项之一:

File                             Thread Safe         VC Bulid
php_sqlsrv_53_nts_vc6.dll           No                  VC6
php_sqlsrv_53_nts_vc9.dll           No                  VC9
php_sqlsrv_53_ts_vc6.dll            Yes                 VC6
php_sqlsrv_53_ts_vc9.dll            Yes                 VC9
您可以在phpinfo()中看到线程安全状态

将正确的文件添加到ext目录,并将以下行添加到php.ini:

extension=php_sqlsrv_53_*_vc*.dll
使用所用文件的文件名

正如Gordon已经发布的,这是Microsoft的新扩展,使用sqlsrv_*API而不是mssql_*

更新:
在Linux上,您没有必要的驱动程序和SQLSERV扩展。
请看下面的讨论

简而言之,您需要安装FreeTDS,是的,您需要在linux上使用mssql_*函数。见更新2

从长远来看,为了简化工作,我建议创建一个包装类,其中包含一些必要的函数,这些函数根据加载的扩展使用适当的API(sqlsrv_*或mssql_*)

更新2:
在linux上不需要使用mssql_*函数。您可以使用PDO+ODBC+FreeTDS连接到ms sql server。在windows上,连接的最佳方法是通过PDO+ODBC+SQL本机客户端,因为PDO+SQLSRV驱动程序的速度可能非常慢。

好的,开始工作了。看起来他们已经重命名了所有的函数:(我需要为windows和linux使用不同的函数调用吗?就像旧的mssql_*用于linux和sqlsrv_*用于windows一样?@user187809 sqlsrv扩展只与windows上运行的PHP兼容。我们不能使用mssql_connect和其他mssql_x吗)SQLSRV扩展中的函数?因为我已经用PHP4开发了一个应用程序,我们升级到了PHP5.3.x版本。Linux和Windows呢?我需要为不同的操作系统使用不同的函数调用吗?microsoft的SQLSRV扩展仅适用于Windows。要从Linux Web服务器使用MS SQL Server,需要使用微软没有提供第三方驱动程序。请看这个问题。