这个扩展需要 Microsoft ODBC Driver 11 for SQL Server 来与 SQL Server 进行通信。

35

我已经在微软上下载了sqlsrv ...

在此输入图像描述

并且在我的phpinfo()中:

在此输入图像描述

在此输入图像描述

C:\wamp\bin\apache\apache2.4.9\binC:\wamp\bin\php\php5.5.12 中的 php.ini 都启用了。 在此输入图像描述

但仍然会得到以下错误。

Failed to get DB handle: SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712 

而我的代码是

try {
    $dbh = new PDO ("sqlsrv:Server=$host;Database=$db","$user","$pass");
  } catch (PDOException $e) {
    echo "Failed to get DB handle: " . $e->getMessage() . "\n";
    exit;
  }
  $stmt = $dbh->prepare("select top 5 from teams");
  $stmt->execute();
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
  unset($dbh); unset($stmt);

"驱动程序11". 你检查过你实际安装的版本了吗?仅有一个SQL Server驱动程序并不意味着什么。 - Marc B
@MarcB 你是什么意思?在哪里可以查看? - Storm Spirit
1个回答

76

1
谢谢你救了我,呵呵呵。 - GuiPab
1
需要注意的一点是,尽管错误消息指示您需要x86驱动程序,但如果您的服务器是x64,则必须安装x64。否则,您将无法安装,因为它会显示“此驱动程序与您的系统不兼容”。而且,x64驱动程序已经包含了x86。 - Turab
2
值得注意的是,扩展列表中的 sqlserv 不是ODBC。这让我有点困惑。 - Itay Moav -Malimovka
1
如果这是一个ODBC驱动程序,我们是否需要启用sqlsrv扩展? - alfadog67
1
是的哦,太爽了....终于能够将PHP Laravel应用程序与MSSQL连接起来,太棒了。只花了我两天时间才弄明白。非常感谢兄弟。 - Vipertecpro
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接