我的查询 -
$shortlistpartners
是数组
$this->db->delete('shortlist_partners');
$this->db->where('opp_id',$this->input->post('opp_id'));
$this->db->where_in('partner_id',$shortlistpartners);
除非包含“where”或“like”子句,否则不允许删除。 错误即将来临,告诉我任何解决方案。
答案 0 :(得分:3)
实际上,CI delete()
方法会在以下位置返回no where or limit
错误:
来自 Source Code:
if (count($this->ar_where) == 0 && count($this->ar_wherein) == 0 && count($this->ar_like) == 0)
{
if ($this->db_debug)
{
return $this->display_error('db_del_must_use_where');
}
return FALSE;
}
所以我想你需要做的就是用删除电话交换你的小伙伴:
$this->db->where('opp_id',$this->input->post('opp_id'));
$this->db->where_in('partner_id',$shortlistpartners);
$this->db->delete('shortlist_partners');
答案 1 :(得分:0)
您已启用--safe-updates
,但不允许DELETE without WHERE
对于初学者,一个有用的启动选项是--safe-updates
(或--i-am-a-dummy,具有相同的效果)。对于可能已发出DELETE FROM tbl_name语句但忘记了WHERE子句的情况很有用。通常,这样的语句会删除表中的所有行。使用--safe-updates
,您只能通过指定标识它们的键值来删除行。这有助于防止事故发生。
快速修复是添加SET SQL_SAFE_UPDATES = 0;在您的查询之前:
SET SQL_SAFE_UPDATES=0;
如果您需要删除表中的所有记录,请使用TRUNCATE TABLE_NAME;
。