如何将 Codeigniter 2.1.x 与 sqlsrv 连接

Posted

技术标签:

【中文标题】如何将 Codeigniter 2.1.x 与 sqlsrv 连接【英文标题】:How to connect Codeigniter 2.1.x with sqlsrv 【发布时间】:2013-09-10 10:18:26 【问题描述】:

我有以下conf数据库

$db['default']['hostname'] = 'xx.xx.xx.xx,1433';
$db['default']['username'] = 'user';
$db['default']['password'] = 'pass';
$db['default']['database'] = 'dbname';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$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;

Codeigniter 告诉我无法使用输入的参数连接到数据库...怎么了?我为 $db['default']['hostname']

尝试以下连接
$db['default']['hostname'] = 'xx.xx.xx.xx,1433';
$db['default']['hostname'] = '(xx.xx.xx.xx),1433';
$db['default']['hostname'] = 'xx.xx.xx.xx:1433';

它不起作用 有任何想法吗?谢谢

【问题讨论】:

是sql server 端口 ocrama 检查我的答案 【参考方案1】:

设置

$db['default']['pconnect'] = false;

应该可以的。

【讨论】:

【参考方案2】:

您将主机名和端口号一起添加,codeigniter 有一个设置来定义端口号

$db['default']['hostname'] = 'xx.xx.xx.xx';
$db['default']['username'] = 'user';
$db['default']['password'] = 'pass';
$db['default']['database'] = 'dbname';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$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;
$db['default']['port'] = 1433;

更多详情请至http://ellislab.com/codeigniter/user-guide/database/configuration.html

【讨论】:

我已插入以下行 $db['default']['port'] = 1433;现在我的数据库配置与您发布的完全一样。但仍然不起作用,错误是一样的:“发生数据库错误无法使用提供的设置连接到您的数据库服务器。文件名:C:\wamp\www\myssite\system\database\DB_driver.php 行号: 124" @ocrama 检查这个***.com/questions/8669337/… 你有 php 的 sql server 扩展吗?另外,您是否安装了 SQL Server Native Access Client (SNAC) 10? @ocrama 也检查一下这个ellislab.com/forums/viewthread/208171/#1017407 我正在使用 WAMP 服务器,并且我拥有 sqlsrv 的所有扩展名:它出现在我的 phpinfo 中。我也有 SQL Server Native Access Client (SNAC) 10,因为在同一台机器上我安装了 sql server management studio。问题可能是 WAMP? 另外,在 Ubuntu 中是否可以使用 sqlsrv 使用 Codeigniter?

以上是关于如何将 Codeigniter 2.1.x 与 sqlsrv 连接的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SQL INSERT INTO SELECT 与 codeigniter 一起使用

如何使用 mamp 将数据库与 codeigniter 连接

如何将 codeigniter 与 Sql Server 2012 连接?

Codeigniter,如何将第三方文件夹中的 jwt 库与模型结合使用?

如何将Codeigniter与MSSQL(SQL Server)连接?

如何在 CodeIgniter 中包含外部库?