Php Microsoft SQL Server 2016驱动程序-安装

Php Microsoft SQL Server 2016驱动程序-安装,php,sql-server-2016,Php,Sql Server 2016,我的问题基于@Crontab的回答。我从微软下载了SQLSRV40。当我试图安装它是要求的 当我安装时,我必须输入一个路径来提取文件,正如在网站安装说明3“出现提示时,输入PHP扩展目录的路径”中提到的那样 我有xampp,还有一个php文件目录。对于我的提取路径,我应该只给出'C:/xampp/php'吗 我有点困惑,因为在回答的注释部分下,@Crontab提到“我的猜测是在任何你能找到所有其他php*.dll文件的地方”。这意味着所有php.*.dll文件都应该在php文件夹下,对吗 同样,

我的问题基于@Crontab的回答。我从微软下载了
SQLSRV40
。当我试图安装它是要求的

当我安装时,我必须输入一个路径来提取文件,正如在网站安装说明3“出现提示时,输入PHP扩展目录的路径”中提到的那样

我有
xampp
,还有一个
php
文件目录。对于我的提取路径,我应该只给出'C:/xampp/php'吗

我有点困惑,因为在回答的注释部分下,@Crontab提到“我的猜测是在任何你能找到所有其他php*.dll文件的地方”。这意味着所有
php.*.dll
文件都应该在
php
文件夹下,对吗

同样,如果我将它们提取到该文件夹或其他文件夹中,当我将
php_pdo_sqlsrv_7_nts_x64
添加到我的
php.ini
文件夹中并通过apache连接时,我找不到我的
pdo_sqlsrv
dll


这是我第一次安装SQL server drive。如果您有任何建议,我们将不胜感激。

看起来主要问题是
sqlsrv
可在Microsoft网站上下载的驱动程序目前只支持PHP7.0.+,即不支持PHP7.1或7.2

解决方案是要么下载更新的驱动程序(支持7.2,但标记为“技术预览”),要么降级到PHP 7.0版

其他常见的问题有:

  • 未能下载所需的其他文件
  • 对x86和x64版本驱动程序的混淆(也包括ts/nts“线程安全”和“非线程安全”)。将取决于您的系统/php安装
还可以看到pecl提供了驱动程序的“预览”版本:

他们还提供了以下有用的描述:

Microsoft PHP for SQL Server驱动程序是允许从PHP脚本中读取和写入SQL Server数据的PHP扩展。SQLSRV扩展提供了一个过程接口,而PDO_SQLSRV扩展实现了PDO,用于访问所有版本的SQL Server 2008 R2和更高版本(包括Azure SQL DB)中的数据。这些驱动程序依赖用于SQL Server的Microsoft ODBC驱动程序来处理与SQL Server的低级通信


检查
phpinfo()
以获取?将其放入脚本中,或使用
php-i
从命令行尝试。。。可能是
C:/xampp/php/ext
@ficuscr谢谢,现在我刚输入
C:/xampp
路径就提取了文件。谢谢你的链接。@ficuscr一个简单的问题,在它提取文件后,有一个
htm
文件要读。我读了它,它只是解释了每个司机的优点。没有其他东西可以安装了,对吗?只是想再检查一下!根据您的设置,可能需要重新启动Apache/php fpm。听起来像是MSI安装程序在安装sqlsrv扩展?假设它添加了include.ini?使用
phpinfo()
php-m
可以告诉您哪些模块可用。基本上需要用一些东西“包括”它,比如
extension=php\u sqlsrv\u 40\u nts\u vc.dll
。运行时配置也通过php.ini文件进行设置。