91f88f2804344161afc6a62d5886f974.jpg
 
最近因為一些安全的問題,要把原本的程式升級到 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。
 
以下說明一下我的更新方式:
  • 下載 Microsoft Drivers 3.0 for PHP for SQL Server
     
     
    在這邊有 SQLSRV20.EXE 以及 SQLSRV30.EXE。其中 SQLSRV30.EXE 是支援 SQL Server 2010 的,所以如果你是使用 SQL Server 2008,就下載 SQLSRV20.EXE 即可。
  • 安裝 SQLSRV for PHP
     

    下載完後解開,將所有的 DLL 複製到 PHP 下的 ext 目錄。然後設定 php.ini。

    在我的設定中,我是使用 php_sqlsrv_53_nts_vc9.dll。他的命名規則如下:

    * _53_  :PHP 5.3,如果你是用 PHP 5.4 的話,就要使用 _54_ 的 DLL。
    * _nts_ :Non-thread-safe,因為我是使用 FastCGI,所以使用 non thread safe,如果你是用 apache module 或是 IIS ISAPI 模式,就要使用 _ts_ 的 DLL。
    * _vc9_ :使用 Microsfot Visual C++ v9 Compiler 的。
     
    除了這個之外,如果你連接資料是使用 PDO 的方式,則要使用有 _PDO_ 的 DLL。
     
  • 設定 PHP.ini
    只要加入 extension=php_sqlsrv_53_nts_vc9.dll 即可。
  • PHP 程式
    因為我是使用 ADOdb Database Abstraction Library for PHP,所以只要修改 DB type 從 mssql 改為 mssqlnative 即可。
Facebook 討論區載入中...