首先,我阅读并尝试了我在网上找到的东西,即使是从这个网站上找到的东西,也无法让它发挥作用。
我在 Windows Server 2012 上运行 SQL SERVER 2014 ,我有一个 WAMP 64位运行 Apache on PHP 7.1.6 并且需要连接到数据库,显然扩展未加载,因为我收到 未定义的函数错误 。
$ conn = sqlsrv_connect($ APIDBSERVER,$ connection);
到目前为止我做了什么:
显然PDO还需要WAMP没有的php_pdo.dll,我还没有找到从哪里下载,所以我正在使用标准的非PDO方法
延长= 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吗?
答案 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代替。