a6798246 发表于 2010-10-10 00:29:09

update语句的一个超级费解的问题,拖了1个星期,help!

本帖最后由 a6798246 于 2010-10-10 00:34 编辑

上图:
数据库的原记录:
假设我用以下数据update(其实无论怎么update结果都一样,这里举一个例子而已)
结果就会变成这样:

controllers:               
                  function callbackdata(){
                        $userid                = $this->self_session->userdata('userid');
                        $data['username']        = $this->input->post("username");
                        $data['qq']                        = $this->input->post("QQ");
                        $data['phone']                = $this->input->post("phone");
                        $data['school']                = $this->input->post("school");
                        $data['depart']                = $this->input->post("department");
                        $data['say']                = $this->input->post("say");
                        $data['is_show']        = $this->input->post("competence");

                        $result = $this->Mpersonalpage->modify_data($userid ,$data);
                        if ($result === FALSE){
                                show_error('<font color=red>修改信息时发生错误</font>',401);
                                return ;
                        }
                        $this->Mglobal->show('操作成功','修改信息成功!',site_url('personalpage'));
                        $this->output->enable_profiler(TRUE);

                }
model:function modify_data($userid ,$data){
                        print_r($data);
                        $this->db->where('userid',$userid);
                        $this->db->update('memberinfo' ,$data);
                        if ($this->db->affected_rows() > 0 ){
                                return TRUE;
                        }
                        return FALSE;
                }
print_r($data)结果为:Array ( => 阿萨德的 => 380032007 => 2147483647 => 华师 => 计算机 => 123123123123 => 0 )

因为我是$this->output->enable_profiler(TRUE); 我把sql语句放到mysql里执行又一切正常,而实际上model也返回了TRUE,也说明了update成功?为什么结果就不是我update的结果呢???

a6798246 发表于 2010-10-10 00:35:51

自己顶自己,求高人解释!!!

ouxingzhi 发表于 2010-10-10 17:16:23

你可以跟踪到db->update()方法去看看发生了什么

sonic 发表于 2010-10-12 14:26:34

首先看看数组有没有问题
var_dump($data);
然后
你用$this->db->query($sql,$data);
可以执行了吗?

9308172 发表于 2010-11-14 20:40:10

请你认真查看你的UserName 数据类型

minlo 发表于 2010-12-17 02:05:57

本人有一次相同,原来是 .php 文件编码不是utf8,改了就正常

zfm1988 发表于 2010-12-17 16:59:42

我感觉是编码的问题,你可以用火狐调试下,会显示你插入了什么东西!!

loadinger 发表于 2011-1-13 11:24:48

把sql打出来,拿去数据库直接执行,什么问题都好了。。。

as3291363 发表于 2011-3-1 23:03:42

$this->db->affected_rows() > 0
没有返回受影响行数?

gejiangs 发表于 2011-9-29 11:15:23

估计是编码问题。
页: [1] 2
查看完整版本: update语句的一个超级费解的问题,拖了1个星期,help!