关于CI与sqlite3数据库连接后的更新问题
大佬们我又来啦!我的项目用的是sqlite3的数据库,ci是3.1.2,使用说明手册里的insert和query一直都没有问题,但是今天写个人管理,想要更新用户信息的时候,update会把整张表的数据都更新,不想用replace,因为不想每次都把全部字段更新一遍,希望可以更新其中的部分字段,但是使用update时,
$this->db->query()选出对应行(也可以证明只选了一行)
$this->update->('user',$data)会把整张表的所有数据都更新,这是为毛啊,希望大佬能解答一下
代码贴上来
controller
function index(){
$this->load->model('db_model');
$users = $this->db_model->get_data();
foreach($users as $user){
echo $user->username;
$name = $user->username;
$id = $user->userid;
$password = $user->password;
$avatar = $user->avatar;
$sex = $user->sex;
$city = $user->cityid;
}
$data = array(
'username'=>'啊扣扣',
'password'=>$password,
'avatar'=>$avatar,
'sex'=>$sex,
'cityid'=>$city
);
$this->db_model->update($id,$data);
$users = $this->db_model->get_data();
foreach($users as $user){
echo $user->username;
}
}
model
public function get_data(){
$query = $this->db->get('user');
return $query->result();
}
public function update($id, $data){
$query=$this->db->query("select * from user WHERE userid='".$id."'");
echo "<br />";
echo $query->num_rows();
echo "<br />";
$this->db->update('user',$data);
}
最后输出
啊扣扣张耳朵张狗蛋张全蛋
1
啊扣扣啊扣扣啊扣扣啊扣扣
第一排是数据库里原来的username
中间是选出来的行数
最后一排是最终改完以后数据库里的username
update 需要给一个 where 条件呀,否则就会更新所有数据,这个是 SQL 知识。(update 和 query 是没有任何上下文关系的,楼主是不是把这里搞混了?) Hex 发表于 2016-11-30 18:41
update 需要给一个 where 条件呀,否则就会更新所有数据,这个是 SQL 知识。(update 和 query 是没有任何 ...
谢谢大神!
初学php,还在摸索中(我还以为query选出来的就是update的where条件选出来的行)
还有一个问题,ci的upload辅助方法可以自己设置错误信息吗?比如说没有选择上传文件,就使用自定义的图片,如果没有满足图片大小要求,就输出自定义的错误信息
张耳朵 发表于 2016-11-30 20:23
谢谢大神!
初学php,还在摸索中(我还以为query选出来的就是update的where条件选出来的行)
可以,具体需要参考一下手册。
页:
[1]