如何使用SQLSRV扩展来使用PHP,因为MSSQL已被弃用?

时间:2011-09-13 13:30:07

标签: php sql-server dll

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

我在窗户上。在解压缩PHP 5.3的ext目录中的文件后,我需要做什么?

2 个答案:

答案 0 :(得分:36)

引用http://php.net/manual/en/intro.mssql.php

  

使用PHP 5.3或更高版本的Windows上不再提供MSSQL扩展。   SQLSRV是MS SQL的替代驱动程序,可从Microsoft获得:»http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx

下载后,请按照此页面上的说明操作:

简而言之:

  

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

extension=php_sqlsrv_53_nts_vc9.dll  
     

重新启动Web服务器。

另请参阅(从该页面复制)

SQLSRV扩展的PHP手册位于http://php.net/manual/en/sqlsrv.installation.php,并提供以下安装:

  

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

司机can also be used with PDO

答案 1 :(得分:5)

下载Microsoft Drivers for PHP for SQL Server。提取文件并使用以下之一:

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扩展 请查看Connect to MS SQL Server from PHP on Linux?以获取有关此问题的讨论。

简而言之,你需要安装FreeTDS 和YES,你需要在linux上使用mssql_ * functions 请参阅更新2

为了简化事情,我建议创建一个包含必需函数的包装类,这些函数根据加载的扩展名使用适当的API(sqlsrv_ *或mssql_ *)。

更新2: 您不需要在linux上使用mssql_ *函数。您可以使用PDO + ODBC + FreeTDS连接到ms sql服务器。在Windows上,最好的连接方法是通过PDO + ODBC + SQL Native Client,因为PDO + SQLSRV驱动程序可能非常慢。