无法连接到数据库。连接器返回的编号:数据库sqlsrv_connect失败

时间:2015-04-14 23:24:01

标签: php mysql sql-server joomla mysqli


我无法将Joomla连接到MSSQL 我一直在

  

无法连接到数据库。连接器返回编号:数据库   sqlsrv_connect失败


我是否使用MySQLi驱动程序或我安装的驱动程序(Microsoft SQL Server)
看起来像驱动安装问题,
我可以用Mssql Client连接到同一个盒子...
有人可以从头开始解释如何在PHP上安装Joomla的MSSQL驱动程序吗?
或发送有关如何执行此操作的最新参考资料?

Joomla 3.4
PHP 5.6
IIS 7.5
MSSQL 2008 R2

如果我将驱动程序切换到:php_sqlsrv_54_ts.dll - 它将从joomla安装程序中的“数据库类型”分散...


谢谢

enter image description here

2 个答案:

答案 0 :(得分:2)

显示的joomla错误具有误导性并且不太有用 因此,第一步是修改joomla代码以找出确切的错误 修改应用程序根目录

中connect()函数中的以下代码

库\的Joomla \数据库\驱动\ sqlsrv.php

// Attempt to connect to the server.
        if (!($this->connection = @ sqlsrv_connect($this->options['host'], $config)))
        {
            throw new RuntimeException('Database sqlsrv_connect failed');
        }

// Attempt to connect to the server.
        if (!($this->connection = @ sqlsrv_connect($this->options['host'], $config)))
        {
           throw new RuntimeException("Database sqlsrv_connect failed - Error : ".print_r( sqlsrv_errors(), true));
        }

这将为您提供准确的错误,并指导您完成所需的后续步骤。

SQL Server安装过程中需要考虑的另一件事是启用SQL Server身份验证,因为Joomla默认使用SQL Server身份验证。
您可以通过检查上述

中相同文件中的相同功能来确认Joomla使用SQL Server身份验证
$config = array(
            'Database' => $this->options['database'],
            'uid' => $this->options['user'],
            'pwd' => $this->options['password'],
            'CharacterSet' => 'UTF-8',
            'ReturnDatesAsStrings' => true);

这是确认相同的PHP手册。 http://php.net/manual/en/function.sqlsrv-connect.php

您可以在安装期间或安装后从manamgement工作室启用SQL Server身份验证。

希望这有帮助。

答案 1 :(得分:1)

  • 下载SQLServer 2008 Express,SQLServer 2008 Standard / Enterprise 版本(R2或更高版本)
  • 下载PHP驱动程序
  • 将SQLSRV20.EXE下载到临时目录
  • 运行SQLSRV20.EXE
  • 出现提示时,输入PHP扩展目录的路径
  • 如果你正在使用像XAMPP那样的LAMP堆栈
  • 将php_sqlsrv_52_ts_vc6.dll复制到php / ext文件夹

在php.ini中创建一个条目,如下所示

  • 扩展= p​​hp_sqlsrv_52_ts_vc6.dll

注意:

  1. 如果您需要PDO或vc9版本 - 请复制“ts”版本 适合您的需求。
  2. 如果您使用的是通过FAST-CGI安装PHP引擎的IIS,请 在c:\ Program Files \ php \ php.ini和中进行适当的更改 将dll复制到c:\ Program Files \ php \ ext文件夹
  3. 现在 - 您可以通过从安装步骤4的下拉列表中选择SQLServer 2008来安装Joomla 2.5。

    安装完成后 - 继续浏览管理员/网站