为什么通过URL传值后会多次的插入数据?
碰到一个很诡异的问题,在view层通过URL传值到CONTROL层后,原本MODEL层里的插入语句会重复的插入多条,如果去除URL上的参数,或者通过session传值,就没有问题了。有人知道是什么原因吗?谢谢了~贴代码~ view层的连接
<a href="<?php echo site_url("house/house/update_estate_page/".$rows['EID'])?>">更新
Control层
function update_estate($estate_id)
{
$this->load->model('admin_user_model');
$role_id = $this->session->userdata('RoleKey');
$data['role_right'] = $this->admin_user_model->get_role_right($role_id);
$this->load->model('house/estate_model');
$this->estate_model->update_estate($estate_id);
$data['estate'] = $this->estate_model->query_estate();
$this->load->view('house/query_estate_view',$data);
}
model层
functionupdate_estate($estate_id)
{
$BelongRegion= $this->input->post('Province');
$BelongRegion .= ','.$this->input->post('City');
$BelongRegion .= ','.$this->input->post('District');
$data = array(
'EstateName' => $this->input->post('EstateName'),
'EstateAbbr' => $this->input->post('EstateAbbr'),
'BelongRegion' => $BelongRegion,
'BelongSector' => $this->input->post('BelongSector'),
'DetailAddress' => $this->input->post('DetailAddress'),
'Channel' => $this->input->post('Channel'),
'Memo' => $this->input->post('Memo')
);
$this->db->where('EID', $estate_id);
$this->db->update('estateinfo', $data);
$data = array(
'Phone' => $this->input->post('Phone'),
'PropertyType' => $this->input->post('PropertyType'),
'ProPayDate' => $this->input->post('ProPayDate')
);
$this->db->where('EID', $estate_id);
$this->db->update('buildinfo', $data);
$log['OperatorID']= $this->session->userdata['userID'];
$log['OperatorContent'] = "更新楼盘" ;
$log['LogTime'] =date('y-m-d H:i:s',time());
$log['ConstraintName'] = "add_estateUpdate_view.php";
$this->db->insert('sys_log',$log);
}
红色部分的插入语句就是出现问题的地方 Hex 发表于 2011-8-31 17:39 static/image/common/back.gif
贴代码~
我发现最后跳转页面只要不跳转到本页面就不会出现重复插入的情况,好诡异啊~~~~~~ 我越来越觉得这根本就是CI的一个BUG 应该不是 BUG,因为 insert 方法就是一个 PHP 函数调用,你不执行两次,他不可能执行两次。
这个功能在我这里很正常。
Hex 发表于 2011-8-31 20:26 static/image/common/back.gif
应该不是 BUG,因为 insert 方法就是一个 PHP 函数调用,你不执行两次,他不可能执行两次。
这个功能在我 ...
控制层的跳转页面我换成了一个空页面 或者是一个随便的错误页面 就没有这个问题了 ,这不符合逻辑啊, $this->load->view('house/query_estate_view',$data)这个方法不就是简单的调用页面吗?怎么会和插入数据有关呢? hnu135 发表于 2011-8-31 20:39 static/image/common/back.gif
控制层的跳转页面我换成了一个空页面 或者是一个随便的错误页面 就没有这个问题了 ,这不符合逻辑啊, $t ...
load->view 就是一个 include 操作,但这里使用了 output buffer,所以不是即时输出给浏览器。
最好把你的程序打包发上来,我帮你看看。 打开CI的log,估计你有一个页面执行两次的问题,看日志就清楚了 肯定有一个地方又执行了一次insert操作。
你可以挂一下基准测试类,查看一下数据库的操作详细部分。就能看出来。
页:
[1]
2