我有兩個表(tb_account 和 tb_reg),它們有一個基于 user_id . user_id 用戶注冊帳戶時 tb_account 已存在。我正在嘗試在數(shù)據(jù)庫中插入或更新一個表,但這取決于該行是否不存在,那么它將是 insert 新行。如果沒有,它將 update 排。首先,用戶必須 tb_reg 根據(jù) user_id 它的成功填寫幾個表格。但是當他要第二次更新表格時,條件不起作用。我有這樣的錯誤 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),但我無法修復它。任何人?提前致謝。
1 回答

侃侃爾雅
TA貢獻1801條經(jīng)驗 獲得超16個贊
你忘了調(diào)用 num_rows()函數(shù)你的代碼應該是這樣的
$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);
}
希望這可以幫助
- 1 回答
- 0 關注
- 159 瀏覽
添加回答
舉報
0/150
提交
取消