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

时间:2014-11-19 03:33:54

标签: php pdo wampserver

我想设置从PHP到SQL server 2012的数据库连接。我在Windows机器(64位)上使用PHP 5.5.12设置了一个wamp服务器(64位),并且在同一台机器上我有SQL服务器2012安装。

official_link

提取的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服务器信息。

enter image description here

enter image description here

似乎没有成功配置SQL Server连接。有人可以指导我在这里缺少的东西。

3 个答案:

答案 0 :(得分:3)

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

所以,我安装了一个32位版本的WAMP服务器,现在工作正常。

答案 1 :(得分:2)

检查php错误日志(c:\ wamp \ logs \ php_error.log)。 我有相同的设置(64位WAMP / PHP 5.5.12)和phpinfo中同样缺少sqlsrv引用,我在日志中收到此错误:

  

PHP警告:PHP启动:无法加载动态库   &#39; C:/wamp/bin/php/php5.5.12/ext/php_pdo_sqlsrv_55_ts.dll' - %1不是   有效的Win32应用程序。在第0行的未知中

解决方案是安装64位版本的sqlsrv驱动程序。我通过http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

找到了非官方的64位驱动程序

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

答案 2 :(得分:0)

我正在访问此帖子,我认为这对您和其他同样的问题可能会有所帮助: How can I install pdo_sqlsrv on my windows 2008 Server 2008 R2?

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

延长= php_pdo_mssql.dll 在你的php.ini。

  

{通常这个文件(php_pdo_mssql.dll)应该在PHP扩展目录中(C:... \ php \ ext)。如果它不存在,你可以从http://windows.php.net/download/下载PHP,只需从那里的包中取出扩展名(取一个与你当前的PHP版本相对应的颜色)}。

以上摘自PDO MSSQL Server - Driver not found 阅读更多详情。我和linux有同样的问题,我保存了所有页面,这就是为什么我引用你的帮助。

如果以上所有内容都不适合您:


在php.net上列出了

  

在Windows上,PDO_ODBC默认内置在PHP核心中。它与Windows ODBC驱动程序管理器链接,以便PHP可以连接到编目为系统DSN的任何数据库,并且是连接到Microsoft SQL Server数据库的推荐驱动程序。   http://php.net/manual/en/ref.pdo-odbc.php

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

  1. http://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/
  2. Connect PHP to MSSQL via PDO ODBC
  3. PHP to SQL Server without ODBC or MSSQL support