我正在尝试使用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);
}
答案 0 :(得分:2)
首先,您正在使用2个<form>
标签。尝试使用其中一个并同时使用method
属性
<form method = "" action = "">
echo form_open('Stud_controller/update_student')
如果您使用set()
方法更新查询,则不要在$data
函数中使用update()
方法1
没有set()
方法
public function update($data,$old_roll_no) {
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud", $data);
}
方法2
使用set()
方法
public function update($data,$old_roll_no) {
$this->db->set($data);
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud");
}
答案 1 :(得分:1)
型号:
public function update($data,$old_roll_no) {
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud", $data);
}