簡體   English   中英

在 Codeigniter 中插入或更新條件

[英]Insert or Update Condition in Codeigniter

我有兩個表(tb_account 和 tb_reg),它們有一個基於user_id的關系。 用戶注冊帳戶時, tb_account user_id已存在。

我正在嘗試插入或更新數據庫中的表,但這取決於該行是否不存在,然后它將insert新行。 如果沒有,它將update該行。

首先,用戶必須根據user_id及其成功將幾個表格填寫到tb_reg 但是當他想第二次更新表單時,條件不起作用。 我有一個錯誤,例如Duplicate entry '23' for key 'user_id'

這是我的模型:

<pre>
$pen = [
            'tpt_lahir' => $post['tpt_lahir'],
            'tgl_lahir' => $post['tgl_lahir'],
            'agama' => $post['agama']
        ];

    $user_id=$this->session->userdata('userid');
    //user_id in this session is from tb_account
    $sql = "SELECT * FROM tb_reg WHERE user_id = '".$user_id."'";
    $query = $this->db->query($sql);
    if($query != $user_id) {
        $this->db->set('user_id', $user_id);
        $this->db->insert('tb_reg', $pen); 
    } else {
        $this->db->where('user_id', $user_id);
        $this->db->update('tb_reg', $pen);
    }
</pre>

當然,問題來自條件( if else ),但我無法修復它。 任何人? 提前致謝。

你忘了調用num_rows()函數你的代碼應該是這個

$sql = "SELECT * FROM tb_reg WHERE user_id = '".$user_id."'";
$query = $this->db->query($sql);
if($query->num_rows() == '0' ) {
    $this->db->set('user_id', $user_id);
    $this->db->insert('tb_reg', $pen); 
} else {
    $this->db->where('user_id', $user_id);
    $this->db->update('tb_reg', $pen);
}

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM