sqlsrv驱动程序没有';在php.ini文件中添加扩展项后,不会出现在WAMP服务器phphinfo()上

sqlsrv驱动程序没有';在php.ini文件中添加扩展项后,不会出现在WAMP服务器phphinfo()上,php,pdo,wampserver,Php,Pdo,Wampserver,我想建立一个从PHP到SQL server 2012的数据库连接。我在安装了PHP 5.5.12的windows机器(64位)上安装了一个wamp服务器(64位),在安装了SQL server 2012的同一台机器上 从中提取sqlsrv驱动程序 将提取的驱动程序php_sqlsrv_55_ts.dll、extension=php_pdo_sqlsrv_55_ts.dll复制到php\ext文件夹,然后更改php.ini文件以包含扩展名 extension = php_sqlsrv_55_ts.

我想建立一个从PHP到SQL server 2012的数据库连接。我在安装了PHP 5.5.12的windows机器(64位)上安装了一个wamp服务器(64位),在安装了SQL server 2012的同一台机器上

从中提取sqlsrv驱动程序

将提取的驱动程序php_sqlsrv_55_ts.dll、
extension=php_pdo_sqlsrv_55_ts.dll
复制到
php\ext
文件夹,然后更改php.ini文件以包含扩展名

extension = php_sqlsrv_55_ts.dll; extension = php_pdo_sqlsrv_55_ts.dll;
现在我试过了

<?php
  phpinfo();
 ?>

我看到以下信息,其中没有任何SQL server信息


似乎未成功配置SQL server连接。有人能告诉我我在这里遗漏了什么吗。

我正在访问这个帖子,我想这可能会对你和其他有同样问题的人完全有帮助:

PDO扩展与Microsoft提供的本机驱动程序不同。对于PDO,必须启用

扩展名=php_pdo_mssql.dll 在php.ini中

{通常这个文件(php_pdo_mssql.dll)应该在您的php扩展目录(C:…\php\ext)中。如果它不在那里,您可以从那里下载php并从那里的包中获取扩展名(当然,获取与您的php版本相对应的扩展名)}

以上内容摘自 阅读更多细节。我对linux也有同样的问题,我保存了所有的页面,这就是为什么我要引用你的帮助

如果以上这些都不适用于您,那么:


在php.net上列出

在Windows上,默认情况下,PDO_ODBC内置在PHP核心中。它是针对Windows ODBC驱动程序管理器链接的,因此PHP可以连接到作为系统DSN编目的任何数据库,并且是连接到Microsoft SQL Server数据库的推荐驱动程序。

您可以使用odbc驱动程序连接到mssql服务器,因为我从来没有从windows自行连接过,我使用freeTds通过linux进行连接,以下页面可能会对您有所帮助

  • 检查php错误日志(c:\wamp\logs\php\u error.log)。 我在phpinfo中有相同的设置(64位WAMP/PHP5.5.12)和相同的缺少sqlsrv引用,我在日志中得到了以下错误:

    PHP警告:PHP启动:无法加载动态库 “c:/wamp/bin/php/php5.5.12/ext/php_pdo_sqlsrv_55_ts.dll”-%1不是一个 有效的Win32应用程序。在第0行的未知位置

    解决方案是安装64位版本的sqlsrv驱动程序。我找到了非官方的64位驱动程序


    警告:在我的测试中,我发现这些64位PHP_PDO_SQLSRV扩展比使用PHP_PDO_ODBC时慢10倍。

    64位WAMP服务器无法使用驱动程序扩展=PHP_SQLSRV_55_ts.dll进行连接;extension=php_pdo_sqlsrv_55_ts.dll


    因此,我安装了一个32位版本的WAMP服务器,现在运行正常。

    您是否重新启动了所有服务,甚至在进行更改后重新启动了?如果没有,请执行。是的,我重新启动了所有服务。您是否也下载并安装了
    Microsoft SQL Server 2012本机客户端
    Microsoft ODBC驱动程序11
    。请记住,php扩展不直接与数据库通信,而是与本机客户端通信。请参阅您上面参考的下载页面上的
    系统要求
    部分。@RiggsFolly我已在同一台计算机上安装了完整的SQL server,因此我已默认安装了SQL server安装附带的“Microsoft SQL server 2012本机客户端”。我检查了ODBC管理员以确认。您可以尝试从命令提示符执行php.exe吗。它可能会给你额外的错误输出,你不能在网上看到。