无法从 PHP 连接到 SQL Server

Posted

技术标签:

【中文标题】无法从 PHP 连接到 SQL Server【英文标题】:Can't connect to SQL Server from PHP 【发布时间】:2016-07-02 02:28:16 【问题描述】:

我使用 XAMPP。我需要建立从 php 代码到我的 MS SQL Server 的连接。因此,我从here 安装了sqlsrv 驱动程序。根据phpinfo(),它正在正确加载:

我收到此错误消息:

无法建立连接。数组 ( [0] => 数组 ( [0] => IMSSP [SQLSTATE] => IMSSP => -49 [代码] => -49 => 这个 扩展需要 Microsoft ODBC Driver 11 for SQL Server。使用权 以下 URL 下载 ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712 [消息] => 这个 扩展需要 Microsoft ODBC Driver 11 for SQL Server。使用权 以下 URL 下载 ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712 ) => 数组 ( [0] => IM002 [SQLSTATE] => IM002 => 0 [代码] => 0 => [Microsoft][ODBC Driver Manager] 数据源名称未找到且无 指定的默认驱动程序 [消息] => [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序))

链接指向 x86 客户端,但我只能安装 64 位版本,我是从

https://www.microsoft.com/en-us/download/details.aspx?id=29065

我还是遇到同样的错误。

规格:

操作系统:Windows Server 2012 64 位

PHP:5.6.19

代码就这么简单:

$serverName = "servername";
$connectionInfo = array( "Database"=>"DBname", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if( $conn ) 
     echo "Connection established.<br />";
else
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));

现在呢?我应该在任何PHP/Apache conf 文件中注册已安装的 SQL Native Client 吗?

【问题讨论】:

什么版本的sqlsrv 驱动程序? @ImClarky 兼容 PHP 5.6 -> php_sqlsrv_56_ts.dll SQL Server 2012 功能包似乎没有附带 ODBC 驱动程序 11 - 这就是它所说的连接错误中缺少的内容。可以从这里下载:microsoft.com/en-us/download/details.aspx?id=36434 @ImClarky 看来你是对的。将此评论复制到答案中,以便我接受。谢谢。 【参考方案1】:

根据this blog,微软的 SQL Server 2012 Feature Pack 不包含 SQL Server 的 ODBC Driver 11;这是 sqlsrv 扩展 3.1 及更高版本所必需的。

ODBC Driver 11 Download page

【讨论】:

【参考方案2】:

我也遇到了同样的问题……

使用 phpinfo() 检查您使用的 php 版本,然后下载与您的 php 版本相关的扩展。然后也转到您的 php.ini 文件并像这样添加这些文件

extension=<extension>.dll

然后我总是错过并强调我的一个重要步骤是您需要下载下面链接中找到的驱动程序...否则您的 php 脚本将无法连接到您的 SQL Server ....下载并安装此在实际安装了 SQL Server 的机器上...如果是远程服务器,则必须将其安装在远程服务器上...如果在本地计算机上,则必须将其安装在本地计算机上...

https://www.microsoft.com/en-us/download/details.aspx?id=36434

Can't connect to SQL Server from PHP

那你应该好好去...

【讨论】:

以上是关于无法从 PHP 连接到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

php 无法连接到 sql server 2008(使用 pdo dblib)

无法从 codeigniter 2.1.4 连接到 SQL Server 2012

无法使用 PHP 连接到 SQL Server

Codeigniter 无法连接到外部 SQL Server

Apache 不会使用 PHP 连接到 SQL Server

无法使用 codeigniter 连接到 SQL SERVER 数据库