2015-10-04 86 views
7

我搜索了一整天,找到一個解決方案sqlsrv dll在php 7 VC14 x64線程安全,我沒有找到解決方案。有沒有人解決了這個問題:php 7無法初始化sqlsrv

[04-Oct-2015 19:48:05 UTC] PHP Warning: PHP Startup: pdo_sqlsrv: Unable to initialize module 
Module compiled with module API=20131226 
PHP compiled with module API=20141001 
These options need to match 
in Unknown on line 0 

這裏是我的PHP7 RC4信息:

System Windows NT 6.0 build 6002 (Windows Server 2008 Standard Edition Service Pack 2) AMD64 
Build Date Sep 29 2015 17:15:28 
Compiler MSVC14 (Visual C++ 2015) 
Architecture x64 

回答

12

SQLSRV沒有準備好PHP7尚未但是這不是真的,那沒有公佈,自2012年最後釋放從2015年5月開始。維護者是微軟,PHP7的版本計劃在明年初。

https://github.com/Azure/msphpsql/issues/58

更新:

驅動程序可用於PHP高達7.1甚至今日(三月2017)的Linux版本。

https://github.com/Microsoft/msphpsql

+0

好找,我一直在尋找PECL擴展版本的歷史... –

+0

是這個答案已經過時? – reformed

+0

是的。這個答案是兩歲。您現在可以使用最高達PHP 7.1的sqlsrv驅動程序(甚至在Linux上)。 – kba

4

對於未來的32位和64位版本參考(使用Xampp和PHP 7.0.13在Windows 7上測試):

  1. 在此處下載並安裝ODBC驅動程序:https://www.microsoft.com/en-US/download/details.aspx?id=36434

  2. 在此處下載DLL(均爲7.0。和7.1.can找到):https://github.com/Microsoft/msphpsql/releases

  3. 打開 「的php.ini」 文件並查找 「下extension_dir」 行。這會告訴你在哪裏放置DDL文件。 :在XAMPP,應該是這樣的: 「C:\ XAMPP \ PHP \分機

enter image description here

  • 把DLL文件包含在您的擴展目錄中的Zip存檔中。確保選擇正確的版本。 注意:我最初嘗試使用x64版本,但它不起作用。然後,我用x86版本替換了DLL,並且它終於有效。
  • enter image description here

  • 回到你的 「的php.ini」 文件,你需要添加下面一行: 「延長= php_pdo_sqlsrv_7_ts.dll」。 注意:Xamppp使用胎面安全版本。
  • ​​

  • 確保重新啓動Apache服務。測試
  • enter image description here

    代碼示例:

    +1

    這對我有效。 – LautaroAngelico

    相關問題