>백엔드 개발 >PHP 튜토리얼 >ci 这样插入mysql,中文为什么显示空白.

ci 这样插入mysql,中文为什么显示空白.

WBOY
WBOY원래의
2016-06-06 20:31:361371검색

<code>function insert_file($fwqm, $kjsj, $yxts, $jingyan, $version, $xianlu, $kefu, $zhuye)  
    {           
        $this->db->query("SET NAMES utf8"); 
        if($fwqm != null){
            $data = array(
                                    'fwqm' => $this->security->xss_clean($fwqm),
                                    'kjsj' => $this->security->xss_clean($kjsj),
                                    'yxts' => $this->security->xss_clean($yxts),
                                    'version' => $this->security->xss_clean($version),
                                    'jingyan' => $this->security->xss_clean($jingyan),
                                    'xianlu' => $this->security->xss_clean($xianlu),
                                    'kefu' => $this->security->xss_clean($kefu),
                                    'zhuye' => $this->security->xss_clean($zhuye),
                            );

             $this->db->insert('fbz',$data);
        }
    }
</code>

直接写中文是可以的,把变量赋值为中文也是可以插入的,通过表单也能插入,但就是这样通过参数传递进来,中文就插入不进mysql,显示空白.

知道了。编码问题
$kjsj = mb_convert_encoding($kjsj,'utf8', 'gbk');

回复内容:

<code>function insert_file($fwqm, $kjsj, $yxts, $jingyan, $version, $xianlu, $kefu, $zhuye)  
    {           
        $this->db->query("SET NAMES utf8"); 
        if($fwqm != null){
            $data = array(
                                    'fwqm' => $this->security->xss_clean($fwqm),
                                    'kjsj' => $this->security->xss_clean($kjsj),
                                    'yxts' => $this->security->xss_clean($yxts),
                                    'version' => $this->security->xss_clean($version),
                                    'jingyan' => $this->security->xss_clean($jingyan),
                                    'xianlu' => $this->security->xss_clean($xianlu),
                                    'kefu' => $this->security->xss_clean($kefu),
                                    'zhuye' => $this->security->xss_clean($zhuye),
                            );

             $this->db->insert('fbz',$data);
        }
    }
</code>

直接写中文是可以的,把变量赋值为中文也是可以插入的,通过表单也能插入,但就是这样通过参数传递进来,中文就插入不进mysql,显示空白.

知道了。编码问题
$kjsj = mb_convert_encoding($kjsj,'utf8', 'gbk');

你打印一下$data看看$this->security->xss_clean有没有接收到值。

你看下sql语句

<code>echo $this->db->last_query();
</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.