【问题标题】:This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server此扩展需要 Microsoft ODBC Driver 11 for SQL Server 才能与 SQL Server 通信
【发布时间】:2015-12-21 17:23:40
【问题描述】:

已经在 microsoft 上下载了 sqlsrv...

在我的 phpinfo() 上

php.iniC:\wamp\bin\apache\apache2.4.9\binC:\wamp\bin\php\php5.5.12 上启用

仍然出现这样的错误。

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”。你检查过你实际安装的版本吗?仅仅拥有一个 sqlserver 驱动程序没有任何意义。
  • @MarcB 你是什么意思?在哪里检查?

标签: php sql-server


【解决方案1】:

除了pdo_sqlsrv 扩展之外,您还需要在您的机器上安装 ODBC 11 驱动程序。

您可以在以下地点之一获得它:

【讨论】:

  • 谢谢你救了我呵呵
  • 有一点需要注意;尽管错误消息表明您需要 x86 驱动程序;如果您的服务器是 x64,则必须安装 x64。否则您将无法安装,因为它会说“此驱动程序与您的系统不兼容”。无论如何,x64 驱动程序已经包含 x86。
  • 值得注意的是,扩展列表中的sqlserv并不是ODBC。这让我有点困惑。
  • 如果这是一个 ODBC 驱动程序,我们还需要启用 sqlsrv 扩展吗?
  • 有了 sqlsrv,为什么我需要 ODBC,没有任何解释,为什么我需要二进制 blob?以及如何为 vanilla Linux 发行版获取它,(未列出)tarball 和将命令作为标准发生了什么?
猜你喜欢
  • 2017-10-06
  • 2016-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-03
  • 2021-03-09
  • 1970-01-01
  • 2018-08-14
相关资源
最近更新 更多