2

我正在开发一个连接到 MSSQL 数据库的 Web 应用程序。我之前成功地连接到数据库没有任何问题,但是我对 sqlsrv_driver 文件进行了微小的更改。我遇到了以下错误,将我的更改回滚到原始文件,但仍然存在问题。

我已经确保我安装了相关的 MS 驱动程序,使用了正确的端口号等,但是它返回了这个错误:

Unable to connect to your database server using the provided settings.
Filename: D:...\system\database\DB_driver.php
Line Number: 124  

除此之外,我还通过 sqlsrv_connect 函数在 codeigniter 外部建立了连接。成功连接,没有错误。

为什么我会收到此错误?

4

3 回答 3

3

要从 PHP->SQLSrv 进行连接,您需要安装以下驱动程序:

一个。 Microsoft Drivers 3.0 for PHP for SQL Server (SQLSRV30.EXE)

湾。 Microsoft Visual C++ 2010 可再发行包(32 位/64 位)

C。 Microsoft® SQL Server® 2012 本机客户端(sqlncli.msi)

并在 php.ini 文件中添加这一行:

extension=php_sqlsrv_54_ts.dll
于 2013-12-05T13:36:05.487 回答
1

驱动程序 sqlsrv 有问题。打开/system/database/drivers/sqlsrv/sqlsrv_driver.php

要允许pconnect您的配置,请89

$this->db_connect(TRUE);

return $this->db_connect(TRUE);

如果您想affected_rows正确使用,请274

return @sqlrv_rows_affected($this->conn_id);

return @sqlsrv_num_rows($this->result_id);

我在其他地方看到了多个关于如何修复的建议affected_rows,但是如果您还使用 sqlsrv 进行会话验证,则更_execute改为不使用会破坏存储的会话。Scrollable

于 2013-12-26T15:38:51.910 回答
0

我刚刚解决了这个问题。我正在连接到由微软 Azure 托管的 MSSQL

在互联网上进行了几项研究工作后,我遵循的步骤如下:

数据库.cfg:

$db['default']['hostname'] = 'XXXXXXX.database.windows.net';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

主要是 dbdriver、pcconnect 和您应该正确配置的主机名。休息很常见。从您的 azure 数据库详细信息中获取主机名。

而且我还修改了几个系统文件,因为我听说 DB 驱动程序存在问题。

系统/数据库/驱动程序/sqlsrv/sqlsrv_driver.php

function db_pconnect()
    {
        //$this->db_connect(TRUE);
        return $this->db_connect(TRUE);
    }

function affected_rows()
{
    //return @sqlrv_rows_affected($this->conn_id);
    return @sqlsrv_num_rows($this->result_id);
}

我能够连接到数据库并创建数据库应用程序。

希望它会帮助有需要的人:)

于 2014-12-22T07:24:03.687 回答