简单的问题。使用Codeigniter 2.x.x,我在连接MS SQLServer数据库时没有遇到任何问题。我现在已升级到Codeigniter 3,我收到此错误:
A Database Error Occurred
Unable to set client connection character set: utf8
Filename: core/CodeIgniter.php
Line Number: 500
这是我的database.php配置文件:
Codeigniter 2.x.x - >它有效
$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 - >错误
$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
答案 0 :(得分: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
);
它完美无瑕。无论如何,谢谢您的提示。