最近因为一些安全的问题,要把原本的程式升级到 PHP 5.3。原本想说可以无痛升级的,但是试了才知道,如果资料库是使用 SQL Server 的话,就会很麻烦了! 在 PHP 5.3 以后就不再支持 SQL Server 了,因为微软自己跳下来做了! (详情请看:http://msdn.microsof
最近因为一些安全的问题,要把原本的程式升级到 PHP 5.3。原本想说可以无痛升级的,但是试了才知道,如果资料库是使用 SQL Server 的话,就会很麻烦了!
在 PHP 5.3 以后就不再支持 SQL Server 了,因为微软自己跳下来做了! (详情请看:http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx)
除此之外,原本的 mssql_xxx 的 function 也不再支援,全部换成 sqlsrv_xxx 的Function。 (http://www.php.net/manual/en/book.sqlsrv.php)
以下说明一下我的更新方式:
1. 下载 Microsoft Drivers 3.0 for PHP for SQL Server:http://www.microsoft.com/en-us/download/details.aspx?id=20098
在这边有 SQLSRV20.EXE 以及 SQLSRV30.EXE。其中 SQLSRV30.EXE 是支援 SQL Server 2010 的,所以如果你是使用 SQL Server 2008,就下载 SQLSRV20.EXE 即可。
2. 安装 SQLSRV for PHP
下载完后解开,将所有的 DLL 复制到 PHP 下的 ext 目录。然后设定 php.ini。
在我的设定中,我是使用 php_sqlsrv_53_nts_vc9.dll。他的命名规则如下:
除了这个之外,如果你连接资料是使用 PDO 的方式,则要使用有 _PDO_ 的 DLL。
3. 设定 PHP.ini
只要加入 extension=php_sqlsrv_53_nts_vc9.dll 即可。
4. PHP 程式
因为我是使用 ADOdb Database Abstraction Library for PHP,所以只要修改 DB type 从 mssql 改为 mssqlnative 即可。