2015-05-29 163 views
2

简单的问题。使用Codeigniter 2.x.x时,我无法连接到MS SQLServer数据库。我现在已经升级到笨3,我得到这个错误:Codeigniter 3未连接到sqlserver数据库

A Database Error Occurred 

Unable to set client connection character set: utf8 

Filename: core/CodeIgniter.php 

Line Number: 500 

这里是我的database.php中的配置文件:

笨为2.xx - >它的工作原理

$active_group = 'default'; 
$active_record = TRUE; 

$db['default']['hostname'] = 'XXX'; 
$db['default']['username'] = 'XXX'; 
$db['default']['password'] = 'XXX'; 
$db['default']['database'] = 'XXX'; 
$db['default']['dbdriver'] = 'mssql'; 
$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; 

Codeigniter 3 - > error

$active_group = 'default'; 
$query_builder = TRUE; 

    $db['default'] = array(
     'dsn' => '', 
     'hostname' => 'XXX', 
     'username' => 'XXX', 
     'password' => 'XXX', 
     'database' => 'XXX', 
     'dbdriver' => 'mssql', 
     'dbprefix' => '', 
     'pconnect' => FALSE, 
     'db_debug' => TRUE, 
     'cache_on' => FALSE, 
     'cachedir' => '', 
     'char_set' => 'utf8', 
     'dbcollat' => 'utf8_general_ci', 
     'swap_pre' => '', 
     'encrypt' => FALSE, 
     'compress' => FALSE, 
     'stricton' => FALSE, 
     'failover' => array(), 
     'save_queries' => TRUE 
    ); 

有什么想法?谢谢。

进一步的测试包括使用SQLSRV驱动程序,但我得到这个错误:

A PHP Error was encountered 

Severity: Runtime Notice 

Message: Declaration of CI_DB_sqlsrv_driver::_limit() should be compatible with that of CI_DB_query_builder::_limit() 

Filename: sqlsrv/sqlsrv_driver.php 

Line Number: 459 

A PHP Error was encountered 

Severity: Runtime Notice 

Message: Declaration of CI_DB_sqlsrv_driver::_delete() should be compatible with that of CI_DB_query_builder::_delete() 

Filename: sqlsrv/sqlsrv_driver.php 

Line Number: 459 

A PHP Error was encountered 

Severity: Runtime Notice 

Message: Declaration of CI_DB_sqlsrv_driver::_update() should be compatible with that of CI_DB_driver::_update() 

Filename: sqlsrv/sqlsrv_driver.php 

Line Number: 459 

回答

1

我落得这样做:

$active_group = 'default'; 
$query_builder = TRUE; 

$db['default'] = array(
    'dsn' => 'Driver={SQL Server Native Client 10.0};Server=XXX.XX.XXX.XXX;Database=myDataBaseName;', 
    'hostname' => '', 
    'username' => 'XXX', 
    'password' => 'XXX', 
    'database' => '', 
    'dbdriver' => 'odbc', 
    'dbprefix' => '', 
    'pconnect' => FALSE, 
    'db_debug' => TRUE, 
    'cache_on' => FALSE, 
    'cachedir' => '', 
    'char_set' => 'utf8', 
    'dbcollat' => 'utf8_general_ci', 
    'swap_pre' => '', 
    'encrypt' => FALSE, 
    'compress' => FALSE, 
    'stricton' => FALSE, 
    'failover' => array(), 
    'save_queries' => TRUE 
); 

它完美的作品。无论如何感谢提示。