更新查询在 codeigniter 中不起作用
Posted
技术标签:
【中文标题】更新查询在 codeigniter 中不起作用【英文标题】:Update query is not working in codiegniter 【发布时间】:2019-03-01 06:27:22 【问题描述】:我正在尝试使用codeigniter更新stud表的记录,但它没有更新记录,请参阅Stud_edit.php文件的以下代码:
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>
<body>
<form method = "" action = "">
<?php
echo form_open('Stud_controller/update_student');
echo form_hidden('old_roll_no',$old_roll_no);
echo form_label('Roll No.');
echo form_input(array('id'=>'roll_no',
'name'=>'roll_no','value'=>$records[0]->roll_no));
echo "
";
echo form_label('Name');
echo form_input(array('id'=>'name','name'=>'name',
'value'=>$records[0]->name));
echo "
";
echo form_submit(array('id'=>'sub mit','value'=>'Edit'));
echo form_close();
?>
</form>
以下是控制器代码:
public function update_student()
$this->load->model('Stud_Model');
$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')
);
$old_roll_no = $this->input->post('old_roll_no');
$this->Stud_Model->update($data,$old_roll_no);
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
以下是模型代码:
public function update($data,$old_roll_no)
$this->db->set($data);
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud", $data);
【问题讨论】:
删除 $this->db->set() 行 改变'$this->db->update("stud", $data);'到 '$this->db->update("stud");' 【参考方案1】:首先,您使用了 2 个<form>
标签。尝试使用一个并使用method
属性以及
<form method = "" action = "">
echo form_open('Stud_controller/update_student')
如果您使用set()
方法更新查询,则不要在update()
函数中使用$data
方法一
没有set()
方法
public function update($data,$old_roll_no)
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud", $data);
方法二
使用set()
方法
public function update($data,$old_roll_no)
$this->db->set($data);
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud");
【讨论】:
【参考方案2】:型号:
public function update($data,$old_roll_no)
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud", $data);
【讨论】:
以上是关于更新查询在 codeigniter 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
or_where 在 codeigniter 模型中不起作用