“错误!:在WampServer上安装php_[pdo_]mssql.dll后找不到驱动程序


'Error!: could not find driver' after installing php_[pdo_]mssql.dll on WampServer

类似的问题似乎遍布互联网,但到目前为止没有任何帮助。

我目前在Windows Server 2008 R2上运行带有Apache 2.4.4和PHP 5.4.12的WampServer。 根据 PHP 文档,连接到 MSSQL 服务器所需的驱动程序随发行版一起提供;他们没有。 两者都不是php_mssql.dll(文档声称 PHP5.4 不再需要它,但仍在 php.ini 中引用。谁知道呢(php_pdo_mssql.dll也不存在在分布中。

几个消息来源指出了这些来自Microsoft的驱动程序,但是我没有成功将各自的驱动程序重命名为php_mssql.dll/php_pdo_mssql.dll或保持名称相同(php_sqlsrv_54_nts.dllphp_pdo_sqlsrv_54_ts.dll等(并修改php.ini以指向正确的驱动程序。 虽然我在启动 apache 时没有像驱动程序丢失时那样收到错误,但在尝试指向 localhost 的测试 php 页面时,我收到了Error!: could not find driver

这篇文章似乎是最有前途的,但不幸的是ntwdblib.dll不包含在 PHP 的 zip 发行版中,这与文章声称的相反。 这似乎应该是一个可笑的简单问题:缺少驱动程序,而这些驱动程序应该很容易获得。 然而我在这里... 我做错了什么?

如果其他人在尝试解决此问题时最终来到这里,以下是我两次完成的步骤。 这些步骤在Windows Server 2008 R2和Windows 8上都有效。

出于我的目的,我使用了最新的 32 位 (x86( 版本的 WampServer(在撰写本文时,它是 2.4,并附带了 Apache 2.4.4 和 PHP 5.4.16(。 32 位版本是必需的,因为驱动程序是 32 位的;64 位版本将不起作用

  1. 安装 Microsoft Visual C++ 2010 可再发行组件包 x86
  2. Microsoft SQL Server 2008 本机客户端 x86 安装(单击"下载"并选择ENU'x86'sqlncli.msi 。 再一次,64位版本将不起作用(
  3. 安装Microsoft ODBC 驱动程序 11 x86(单击"下载"并选择1033'x86'msodbcsql.msi(
  4. php/ext/中安装 Microsoft SQLSRV 驱动程序 3.0(对于我的安装,这是C:/wamp/bin/php/php5.4.16/ext/(
  5. 编辑 Apache 的 php.ini 以包含行extension=php_pdo_sqlsrv_54_ts.dll(对于我的安装,它位于 C:/wamp/bin/apache/Apache2.4.4/bin/ (

你必须把文件放在 PHP/ext 的目录中(bin/php/ext 取决于你的 Wamp/Xampp 安装(。但是,您还需要 SQL 服务器本机客户端,如下所示:http://msdn.microsoft.com/en-us/library/cc296170.aspx