Это функция в моей модели get_db.php обновить таблицу с именем person:
public function update1($data) {
$id = $data['fname'];
//echo $id;
$this->db->where('fname',$id);
$this->db->update('person',$data);
echo "updated successfully!";
}
Соответствующий метод контроллера:
public function updateValues(){
$data['fname'] = $this->input->post('fname');
$data['lname'] = $this->input->post('lname');
$data['mobile'] = $this->input->post('mobile');
$this->load->model('get_db');
$this->get_db->update1($data);
}
Данные успешно передаются от контроллера к методу модели (я проверял, повторяя его). Но эта часть метода модели:
$this->db->where('fname',$id);
не работает.
Но если я передам любую произвольную строку для предложения where, например:
$this->db->where('fname','anystring');
затем он работает и обновляет мою таблицу «человек».$id
по какой-то причине не проходит правильно. Пожалуйста, помогите.
Замечания : fname
,lname
а также mobile
имена столбцов в моей таблице
Please try this
//this is controller code
public function updateValues(){
$data['fname'] = $this->input->post('fname');
$data['lname'] = $this->input->post('lname');
$data['mobile'] = $this->input->post('mobile');
$this->load->model('get_db');
$this->get_db->update1($data);
}
//model
public function update1($data) {
$fname = $data['fname'];
$this->db->like('fname',$fname);
$this->db->update('person',$data);
echo "updated successfully!";
}
$id
должен передаваться от контроллера к модулю.
В контроллере вы должны передать идентификатор функции модели как массив условий. Вы можете передать идентификатор записи в функцию updateValues в качестве параметра. Или из поста.
public function updateValues($id){
$data['fname'] = $this->input->post('fname');
$data['lname'] = $this->input->post('lname');
$data['mobile'] = $this->input->post('mobile');
$this->load->model('get_db');
$this->get_db->update1($data,array("id"=>$id));
}
В модели:
public function update1($data,$condition) {
$id = $data['fname'];
//echo $id;
$this->db->where($condition);
$this->db->update('person',$data);
echo "updated successfully!";
}
Я думаю, что лучшее решение для обновления строки, используя идентификатор таблицы или номер мобильного телефона (если уникален) …. потому что имя или фамилия фрист может быть дубликатом.