关于$this->db->affected_rows()获取影响行数的问题
问题描述:我做了一个update更新,更新成功后想确定更新数据成功所以用到了CI的 $this->db->affected_rows();代码如下
$where = array('id' => $id, 'doctor_id' => $mid);
$data = array('is_open' => $request);
$this->db->update('mytabel',$data,$where);
//↑以上的更新操作是执行成功的 然后我想判断是否更新成功
if ($this->db->affected_rows() > 0){
echo '更新成功!';
}else {
echo '更新失败!'; // 结果程序老是执行到失败这里来了
}
在手册查过 但是我对手册上的解释很懵懂 希望各位遇到过或者知道原因的CI高手给解释一下 {:2_39:} 你确定你 update 了数据了吗?
这是影响的行数,如果你数据和以前一样,则没有影响的行数。 更新表拼写错了吧,mytabel?mytable?
更新失败了当然没有affrows 回复 2# Hex 我确定更新成功了,每次我都对照数据库看了的 回复 3# visvoy 这个是我手误 只是想表达下那里面放的是表名 :$ 回复 6# Hex :funk: 以后大家一定记住用正确的编程规范 ,CI对编程规范比较严格,不然和我一样报出些莫名其妙的错误就头大了。希望大家引以为戒 我也遇见过,还在纠结中。。。
$this->db->insert(); 插入数据使用$this->db->affected_rows();可以得到影响的行数
$this->db->update(); 却返回得到的始终是FALSE 当使用 UPDATE 查询,MySQL 不会将原值和新值一样的列更新。这样使得 affected_rows() 函数返回值不一定就是查询条件所符合的记录数,只有真正被修改的记录数才会被返回。 只有数据改变的时候才返回大于0的值。
页:
[1]
2