2011-04-28 6 views
0

Je travaille avec une bibliothèque de CodeIgniter appelé MY_Model.php dans ce modèle il y a la fonction suivante,avec difficulté à la bibliothèque Codeigniter

public function update($primary_value, $data, $skip_validation = FALSE) 
{ 
    $valid = TRUE; 
    if($skip_validation === FALSE) 
    { 
     $valid = $this->_run_validation($data); 
    } 

    if($valid) 
    { 
     $this->skip_validation = FALSE; 
     return $this->db->where($this->primary_key, $primary_value) 
      ->set($data) 
      ->update($this->_table); 
    } 
    else 
    { 
     return FALSE; 
    } 
} 

J'exécution alors la fonction avec le code suivant,

$update = array('last_logged_in', date("Y-m-d H:i:s")); 
      if($this->ci->users_model->update($query[0]['user_id'], array('last_logged_in', date("Y-m-d H:i:s")))) 
      { 
       $this->session->set_flashdata('success', 'You have successfully been logged in'); 
       switch($query['user_type_id']) 
       { 
        case 1: 
         redirect('/candidate/dashboard'); 
         break; 

        case 2: 
         redirect('/employer/dashboard'); 
         break; 

        case 3: 
         redirect('/admin/dashboard'); 
         break; 
       } 
      } 

Cependant, je reçois les erreurs suivantes,

A Dat Erreur abase Occurred

Numéro d'erreur: 1054

Unknown column '0' dans 'liste des champs'

MISE A JOUR users SET 0 = 'last_logged_in', 1 = « 2011-04-28 21:06:51' OÙ user_id = '2'

Répondre

0

Essayez de modifier

array('last_logged_in', date("Y-m-d H:i:s")) 

à

array('last_logged_in' => date("Y-m-d H:i:s")) 
0

Je pense que vous devez changer à ceci:

  if($this->ci->users_model->update($query[0]['user_id'], array('last_logged_in' => date("Y-m-d H:i:s")))) 

Notez le tableau est maintenant associatif - vous avez eu une virgule là ce qui en fait indexé.

Questions connexes