windows下PHP安裝MSSQL擴展后可以只用pdo連接mssql

  1. 查看已安裝的php版本(重要,如果版本和所下載的.dll文件不匹配,配置后仍然會無效)

  2. 下載并直接安裝微軟提供的官方ODBC驅動(必須,否則配置失效):
    https://docs.microsoft.com/zh-cn/sql/connect/odbc/windows/release-notes-odbc-sql-server-windows?view=sql-server-ver15#13

  3. 根據php版本號,查看并下載微軟提供的官方MSSQL擴展:
    https://docs.microsoft.com/zh-cn/sql/connect/php/release-notes-php-sql-driver?view=sql-server-ver15
    得到.exe壓縮包(又稱SQLSRV驅動程序)

  4. 直接解壓該壓縮包,得到一些.dll擴展文件,可能如下圖所示(版本號會有所不同):


    SQLSRV驅動程序
  5. 此壓縮包中提供兩種文件:pdo_sqlsrv類型驅動程序(如:圖中前四個.dll文件)和sqlsrv類型驅動程序(如:圖中后四個.dll文件)。從兩種類型各選擇一個與當下php運行環境相匹配的.dll文件,粘貼進php的ext文件夾中。

  6. .dll文件選擇須知:

    1. 為什么要兩種驅動程序中各選一個并同時使用?
      答:sqlsrv 驅動程序用于提供與 SQL Server 交互的過程接口,pdo_sqlsrv 驅動程序用于實現 PHP面向對象的PDO接口,用于處理數據庫
    2. TS類型驅動程序和NTS類型驅動程序應該選哪個?
      答:TS(Thread-Safety)即線程安全,多線程訪問時,采用了加鎖機制,當一個線程訪問該類的某個數據時進行數據加鎖保護,其他線程不能同時進行訪問該數據,直到該線程讀取完畢,其他線程才可訪問使用該數據,好處是不會出現數據不一致或者數據污染的情況,壞處是耗費的時間要比 NTS 長。PHP以 ISAPI 方式(Apache 常用方式)加載的時候選擇TS版本。NTS: NTS(None-Thread Safe)即非線程安全,不提供數據訪問保護,有可能出現多個線程先后或同時操作同一數據的情況,壞處是容易造成數據錯亂(即臟數據),好處是一般操作執行時間比 TS 短
  7. 根據上條原則,我的電腦是x64系統,于是選擇php_sqlsrv_7_ts_x64.dll文件和php_pdo_sqlsrv_7_ts_x64.dll文件。接下來,修改php的php.ini文件,在其中增加擴展連接并保存修改:
    extension=php_sqlsrv_7_ts_x64.dll
    extension=php_pdo_sqlsrv_7_ts_x64.dll

  8. 重啟Apache服務,使用phpinfo()函數檢查輸出是否成功

原文鏈接:https://blog.csdn.net/Tuimaohenyouya/article/details/137766107

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容