У меня проблема с обновлением полей в базе данных с помощью метода обновления кода
Мой контроллер:
$database = array( 'last_location' => $url[5]."-".$url[6], 'last_date_location' => $url[3]." ".$url[4], ); $user = $this->API_model->get_user($url[0]); print_r($user); if ($this->db->update('user', $database , $user['id']) === true) { print_r($database); echo "MEI_TRUE"; }else { echo "MEI_FALSE"; }
браузер возвращает MEI_TRUE
что означает, что база данных успешно обновлена, но когда я проверяю базу данных в phpmyadmin, ничего не изменилось 🙁
в чем проблема?
Теперь он должен работать.
$database = array( 'last_location' => $url[5]."-".$url[6], 'last_date_location' => $url[3]." ".$url[4], ); $user = $this->API_model->get_user($url[0]); print_r($user); $query = $this->db->where('id',$user['id']) ->update('user', $database); if ($query) { print_r($database); echo "MEI_TRUE"; }else { echo "MEI_FALSE"; }
Можете ли вы попробовать что-то вроде ниже,
$database = array( 'last_location' => $url[5]."-".$url[6], 'last_date_location' => $url[3]." ".$url[4], ); $this->db->where('id', $user['id']); $this->db->update('user', $database );
Надеюсь, что это поможет вам
дело в том, что вы хотите обновить? третий параметр запроса на обновление позволяет включить предложение where в виде строки
хотя ваш пример довольно опасен, попробуйте следующее
if ($this->db->update('user', $database , "id = ".$user['id']) === true) { print_r($database); echo "MEI_TRUE"; } else { echo "MEI_FALSE"; }
лучший способ был бы (как уже упоминал Дханеш):
$blnUpdateSuccess = $this->db->where("id", $user['id'])->update("user",$database); if ($blnUpdateSuccess) { print_r($database); echo "MEI_TRUE"; } else { echo "MEI_FALSE"; }
Для получения дополнительной информации прочитайте здесь Документацию