使用WAMP和php 7.1.6调用未定义函数sqlsrv_connect()

时间:2017-07-01 08:52:19

标签: sql-server wamp php-7.1

首先,我阅读并尝试了我在网上找到的东西,即使是从这个网站上找到的东西,也无法让它发挥作用。

我在 Windows Server 2012 上运行 SQL SERVER 2014 ,我有一个 WAMP 64位运行 Apache on PHP 7.1.6 并且需要连接到数据库,显然扩展未加载,因为我收到 未定义的函数错误

$ conn = sqlsrv_connect($ APIDBSERVER,$ connection);

到目前为止我做了什么:

  • 已安装用于SQL Server的Microsoft®ODBC驱动程序11
  • 已下载 PHP SQL驱动程序4.0 并将php_sqlsrv_7_nts_x64.dll移至 / ext
  • 将它们添加到 php.ini : 扩展= php_pdo_sqlsrv_7_nts_x64.dll 扩展= php_sqlsrv_7_nts_x64.dll

显然PDO还需要WAMP没有的php_pdo.dll,我还没有找到从哪里下载,所以我正在使用标准的非PDO方法

  • 最近甚至尝试过启用已禁用的odbc扩展程序:

延长= php_odbc.dll

延长= php_pdo_odbc.dll

我通过WAMP菜单访问php.ini所以我知道我正在编辑正确的,重新启动服务器几次尝试不同的东西,但我已经没有想法。

你能帮帮我吗?

修改: PHP错误日志表明无法找到模块,但是如果我检查它们就在那里,那么将文件名复制并粘贴到php.ini中。

  

PHP警告:PHP启动:无法加载动态库   'c:/wamp64/bin/php/php7.1.6/ext/php_pdo_sqlsrv_7_nts_x64.dll' -   找不到指定的模块。在第0行的未知中

     

PHP警告:PHP启动:无法加载动态库   'c:/wamp64/bin/php/php7.1.6/ext/php_sqlsrv_7_nts_x64.dll' -   找不到指定的模块。在第0行的未知中

编辑2: 尝试降级到7.0.20并得到相同的错误,所以php.ini很好,它只是不会因为某个原因加载它们,会尝试下载ODBC 13.1吗?

2 个答案:

答案 0 :(得分:1)

每个PHP版本可能需要用于SQL Server的Microsoft PHP驱动程序的不同版本。

下面的链接显示了PHP和MS SQLSRV版本之间的兼容性: https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15

答案 1 :(得分:0)

由于WAMPServer的配置方式,NTS扩展不会运行。

所以稍微改变你的过程并使用Thread safe dll代替。