[英]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.