CI3连接MSSQL失败
试用CI3,配置database.php采用MSSQL数据库,提示“Unable to set client connection character set: utf8”,同样的配置在CI2中就可正常连接,不知什么原因。請貼出你配置內容 本帖最后由 csfhc 于 2015-4-14 19:44 编辑
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => '192.168.1.1',
'username' => 'sa',
'password' => '1',
'database' => 'test',
'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
);
控制器是这样写的:
class Dbtest extends CI_Controller {
public function get_data()
{
$this->load->database();
$query = $this->db->query('select top 10 * from my_table');
$rows = $query->result();
foreach($rows as $row)
{
echo $row->my_column.'<br>';
}
}
}
访问时提示:
A Database Error Occurred
Unable to set client connection character set: utf8
我用的PHP是5.2.14,不知是不是由于版本低引起的。
其实现在还有很多PHP版本是5.2.17,没试过不知道能不能正常运行 system\database\drivers\mssql\mssql_driver.php system\database\drivers\mssql\mssql_driver.php
280行改成
protected function _db_set_charset($charset)
{
//修正ini_set(mssql.charset)只有在freetds沒有設定語系才有用, 暫時關閉
//return (ini_set('mssql.charset', "UTF-8") !== FALSE);
return true;
}
我是這樣改後就可以正常連接了~ 3.0版本好像最低支持php5.3
页:
[1]