método de atualização não está funcionando no codeigniter

Tenho problemas na atualização de campos no database por meio do método de atualização do codeigniter

Meu controlador:

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

O navegador retorna MEI_TRUE que significa database atualizado com sucesso, mas quando eu verificar database em phpmyadmin nada mudou 🙁

qual é o problema?

Isso deve funcionar agora.

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

Você pode tentar algo como abaixo,

 $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 ); 

Espero que isso ajude você

o que é – o que você deseja atualizar? O 3º parâmetro da consulta de atualização permite ativar a cláusula where como uma string

Embora o seu exemplo seja bastante perigoso, tente o seguinte

 if ($this->db->update('user', $database , "id = ".$user['id']) === true) { print_r($database); echo "MEI_TRUE"; } else { echo "MEI_FALSE"; } 

A melhor maneira seria (como Dhanesh já mencionou):

 $blnUpdateSuccess = $this->db->where("id", $user['id'])->update("user",$database); if ($blnUpdateSuccess) { print_r($database); echo "MEI_TRUE"; } else { echo "MEI_FALSE"; } 

Para mais informações, leia a Documentação aqui