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的结果呢??? 自己顶自己,求高人解释!!! 你可以跟踪到db->update()方法去看看发生了什么 首先看看数组有没有问题
var_dump($data);
然后
你用$this->db->query($sql,$data);
可以执行了吗? 请你认真查看你的UserName 数据类型 本人有一次相同,原来是 .php 文件编码不是utf8,改了就正常 我感觉是编码的问题,你可以用火狐调试下,会显示你插入了什么东西!! 把sql打出来,拿去数据库直接执行,什么问题都好了。。。 $this->db->affected_rows() > 0
没有返回受影响行数? 估计是编码问题。
页:
[1]
2