web-dev-qa-db-fra.com

Requête de mise à jour unique CodeIgniter pour mettre à jour une colonne avec des données de colonnes existantes?

Dans ma base de données, j'ai les colonnes Last et Current pour datetime. Juste pour garder un œil sur la dernière fois que quelqu'un a utilisé un identifiant valide pour le service que je construis.

Ce que je veux savoir, c'est s'il est possible de mettre à jour une colonne sur une ligne avec une autre colonne de cette ligne, tout en mettant à jour l'autre colonne en même temps

C'est-à-dire: définissez le dernier comme courant actuel, puis définissez le courant avec la date qui est en ce moment essentiellement?

Ne veut rien dire?

13
chris

Essayez comme ça ..

$data=array('current_login'=>date('Y-m-d H:i:s'));
$this->db->set('last_login','current_login',false);
$this->db->where('id','some_id');
$this->db->update('login_table',$data);

requête générée par le code ci-dessus: -

UPDATE login_table SET last_login = current_login, current_login = '2018-01-18 15:24:13' WHERE id = 'un_id'

43
Rajeev Ranjan

si vous souhaitez mettre à niveau une seule colonne d'une ligne de tableau, vous pouvez utiliser les options suivantes:

$this->db->set('column_header', $value); //value that used to update column  
$this->db->where('column_id', $column_id_value); //which row want to upgrade  
$this->db->update('table_name');  //table name
2
Mustafiz
$this->db->set('usage', 'usage');  //Set the column name and which value to set..

$this->db->where('tag', 'Java'); //set column_name and value in which row need to update

$this->db->update('tags'); //Set your table name

Essaye ça...

2
kulandai yesu
$data = array( 
    'name'      => $_POST['name'] , 
    'groupname' => $_POST['groupname'], 
    'age'       => $_POST['age']
);

$this->db->where('id', $_POST['id']);

$this->db->update('tbl_user', $data);
1
Praveen PL

J'utilise cette fonction pour toutes les mises à jour de mes sites CI

function _updateRowWhere($table, $where = array(), $data = array()) {
    $this->db->where($where);
    $this->db->update($table, $data);
}
0
Kyslik
        $id= $this->input->Post('edit_id');
        $date= $this->input->Post('date');
        $title=$this->input->Post('title');
        $content=$this->input->Post('content'); 

 $value=array('date'=>$date,'content'=>$content,'title'=>$title);
 $this->db->where('course_id',$id);
 if( $this->db->update('course',$value))
      {
        return true;
      }
      else
      {
        return false;
      }
0
sooraj subramanyan

Une autre façon d'écrire la requête de mise à jour est comme ci-dessous ... 

$this->db->update('student',array('class'=>'xyz','name'=>'abc'),array('stud_id'=>20);

définir la classe xyz, nom abc où stud_id = 20 dans le tableau "étudiant" ..

0
vishal patil