CodeIgniter- active record insert if new or update on duplicate

前端 未结 8 613
醉酒成梦
醉酒成梦 2020-12-29 04:46

Is it possible to do an active record query in CodeIgniter that will update an existing record if one already exists or insert if it doesnt, for the given k

8条回答
  •  醉梦人生
    2020-12-29 05:46

    If you use Codeigniter 3.0 or higher, you might want to consider using "$this->db->replace()". According to the user guide:

    "This method executes a REPLACE statement, which is basically the SQL standard for (optional) DELETE + INSERT, using PRIMARY and UNIQUE keys as the determining factor. In our case, it will save you from the need to implement complex logics with different combinations of select(), update(), delete() and insert() calls."

    In other words,

    • If it doesn't exist, it inserts a new record.
    • If it does exist, it updates it according to its primary or unique key.

    Just use it straight out of the box like:

    $data = array(
            'title' => 'My title',
            'name'  => 'My Name',
            'date'  => 'My date'
    );
    
    $this->db->replace('table', $data);
    

    No batteries required!!!

提交回复
热议问题