2015-10-04 143 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