mysql - Codeigniter 更新数据库表
问题描述
我已经可以从数据库更新我的数据,但问题是我只想更新一个数据,但是当我输入新数据时,它更新了数据库表中的所有数据
这是视图:
<form method="post" action="<?php echo base_url() ?>user/update_user_data">
<div class="form-group">
<label> Enter New first name</label>
<input type="text" name="firstname" class="form-control" />
</div>
<div class="form-group">
<label> Enter New last name </label>
<input type="text" name="lastname" class="form-control" />
</div>
<div class="form-group">
<label> Enter New fullname </label>
<input type="text" name="fullname" class="form-control" />
<div class="form-group">
<input type="submit" name="update" value="Update" class="btn btn-info" />
</div>
这是模型:
function update_data($id = FALSE)
{
if($id == FALSE){
$query = $this->db->get('user');
return $query->result_array();
}
$query = $this->db->get_where('user', array('id' => $id));
return $query->row_array();
}
public function update_user_data($data)
{
$data = array('firstname' => $this->input->post('firstname'),
'lastname' => $this->input->post('lastname'),
'fullname' => $this->input->post('fullname')
);
$this->db->update("user", $data);
}
这是控制器:
public function update_data($id = NULL)
{
$data['us'] = $this->User_Model->update_data($id);
if (empty($data['us'])) {
show_404();
}
$this->load->view('user/update-user', $data);
}
public function update_user_data()
{
$data['title'] = 'Update user';
$this->load->library('upload');
$data = array('upload_data' => $this->upload->data());
$this->User_Model->update_user_data($data);
redirect('user/index');
}
我只是一个初学者请尊重谢谢如果我的代码有问题请告诉我。顺便说一句,它的工作原理是,一旦我更新了用户数据,它就会更新数据库中的所有数据。
解决方案
您正在修改表中的每一行,因为您没有给出任何特定行。因此,更新代码运行后,每一行都会更新。你应该使用下面的代码
function update_data($id = FALSE)
{
if($id == FALSE){
$query = $this->db->get('user');
return $query->result_array();
}
$query = $this->db->get_where('user', array('id' => $id));
return $query->row_array();
}
public function update_user_data($data)
{
$data = array('firstname' => $this->input->post('firstname'),
'lastname' => $this->input->post('lastname'),
'fullname' => $this->input->post('fullname')
);
$this->db->where('id','1')->update("user", $data); //change id as require your own need
}
推荐阅读
- sql - SQL 与数组内的过滤器重叠
- javascript - 三个 js 上的异步等待。GLTFloader 不工作
- python - ImportError:找不到 DLL“msvcp140.dll 或 msvcp140_1.dll”。即使文件位于 %PATH% 目录中
- python - openpyxl 无法打开 xlxs 文件
- angular - Signalr uanble 可以建立与 .net 核心应用程序的连接
- node.js - 在 MongoDB、React 和 Express 页面上显示集合
- flutter - 如何在颤动中获得这样的渐变?
- flutter - 如何在 Flutter Web 中使整个页面可滚动?
- javascript - CSS使表格粘在div的边缘
- javascript - 我的文本和视图样式表样式无法呈现,但是框屏幕文本内容显示了我错过的任何内容?