This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server
回答 1
浏览 8.6万
2015-12-21
我已经在microsoft网站上下载了sqlsrv...
而在我的phpinfo()上
在php.ini
上启用了C:\wamp\bin\apache\apache2.4.9\bin
和C:\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);
你有没有检查过你实际安装的是哪个版本的驱动程序?
- Marc B 2015-12-21
@MarcB 你是什么意思? 在哪里检查?
- Storm Spirit 2015-12-21
1 个回答
#1楼
已采纳
得票数 74
除了pdo_sqlsrv
扩展外,你还需要在你的机器上安装ODBC 11驱动程序。
你可以在这些地点之一得到它:
谢谢你救了我,嘿嘿。
- GuiPab 2017-10-26
有一件重要的事情需要注意;尽管错误信息表明你需要x86驱动;如果你的服务器是x64,你必须安装x64。否则,你将无法安装,因为它会说"this driver is not compatible with you system"。不管怎么说,x64驱动已经包括x86。
- Turab 2019-02-11
值得注意的是,扩展列表中的sqlserv不是ODBC。这让我有点困惑。
- Itay Moav -Malimovka 2020-05-26
如果这是一个ODBC驱动程序,我们甚至需要启用sqlsrv扩展吗?
- alfadog67 2021-03-15
拥有sqlsrv,为什么我应该需要ODBC,在任何地方都没有解释,为什么我需要一个二进制的blob?以及我如何获得它的vanilla Linux发行版,(没有列出)作为标准的tarballs和make命令怎么了?
- NiKiZe 2021-12-07