csfhc 发表于 2015-4-13 21:09:58

CI3连接MSSQL失败

试用CI3,配置database.php采用MSSQL数据库,提示“Unable to set client connection character set: utf8”,同样的配置在CI2中就可正常连接,不知什么原因。

Closer 发表于 2015-4-14 01:25:19

請貼出你配置內容

csfhc 发表于 2015-4-14 19:37:17

本帖最后由 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,不知是不是由于版本低引起的。


昨夜渡轮 发表于 2015-4-15 18:52:33

其实现在还有很多PHP版本是5.2.17,没试过不知道能不能正常运行

kakila 发表于 2015-6-3 15:11:21

system\database\drivers\mssql\mssql_driver.php

kakila 发表于 2015-6-3 15:13:15

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;
        }
我是這樣改後就可以正常連接了~

Aloghli 发表于 2016-2-3 11:05:25

3.0版本好像最低支持php5.3
页: [1]
查看完整版本: CI3连接MSSQL失败