2017-09-13 206 views
1

我的问题是基于这个post从@Crontab得到的答案。我从微软website下载SQLSRV40。当我尝试安装它时,它是要求用于SQL Server 2016的Microsoft驱动程序 - 安装

当我安装时,我必须输入一个路径来解压缩文件,因为它在网站中提到的安装说明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服务器驱动器。任何建议,将不胜感激。

+2

查看['extension_dir'](http://php.net/manual/en/ini.core.php#ini.extension-dir)的'phpinfo()'? – ficuscr

+1

把它放在一个脚本或尝试从命令行与'php -i' ...可能'C:/ xampp/php/ext' – ficuscr

+0

@ficuscr谢谢你,现在我刚刚进入'C:/ xampp'路径。谢谢你的链接。 –

回答

1

看起来像主要问题是sqlsrv驱动程序可以在微软网站上下载,目前只支持PHP 7.0 +,即不是PHP 7.1或7.2。

解决方法是下载较新的驱动程序(https://github.com/Microsoft/msphpsql/releases支持7.2,但标记为“技术预览”)或降级到PHP版本7.0。

其他常见的问题有:

  • 未能下载额外的要求Microsoft ODBC drivers
  • x86和x64版本的驱动程序混淆(ts/nts“线程安全”和“非线程安全”)。将取决于你的系统/ php安装。

还看到那个PECL提供驱动程序的“预览”版本:https://pecl.php.net/package/pdo_sqlsrv/5.0.0/windows

在那里,他们也提供了这个有用的描述:

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

相关问题