Метод обновления активной записи Codeigniter не работает должным образом

Это функция в моей модели 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 имена столбцов в моей таблице

0

Решение

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!";
}
0

Другие решения

$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!";
}
0

Я думаю, что лучшее решение для обновления строки, используя идентификатор таблицы или номер мобильного телефона (если уникален) …. потому что имя или фамилия фрист может быть дубликатом.

-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector