代码点火器MSSQL/SQLRV连接


Codeigniter MSSQL/SQLSRV Connection

我正在开发一个连接到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的外部进行了连接。这是一个成功的连接,没有错误。

为什么我会出现此错误?

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

a。适用于SQL Server PHP的Microsoft驱动程序3.0(SQLSRV30.EXE)

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

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

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

extension=php_sqlsrv_54_ts.dll

驱动程序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将破坏存储的会话。

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

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

database.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驱动程序有问题。

system/database/drivers/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);
}

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

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