0

我需要能够将以下内容转换为 Ci 的活动记录删除方法,但我不知道如何在删除语句中使用 OR。你能告诉我如何正确地做到这一点吗?

$this->db->query("DELETE FROM friend WHERE userid_friends = '{$userid}' AND friendId_friends = '{$targetedUserId}' OR userid_friends = '{$targetedUserId}' AND friendId_friends = '{$userid}' ");
4

1 回答 1

2

我猜你在尝试这个:

$this->db->query("DELETE FROM friend WHERE 
   ( userid_friends = '{$userid}' AND friendId_friends = '{$targetedUserId}')  OR 
   ( userid_friends = '{$targetedUserId}' AND friendId_friends = '{$userid}')  ");

(注意两个 AND 子句的附加括号)

但实际上你没有使用 CI 的“DELETE”方法只是一个查询。

使用活动记录删除将类似于:

$this->db->where("userid_friends = '{$userid}' AND friendId_friends = '{$targetedUserId}'");
$this->db->or_where("userid_friends = '{$targetedUserId}' AND friendId_friends = '{$userid}'");
$this->db->delete('friend');

对于复杂查询的调试,我建议您使用

echo $this->db->last_query();

因为它准确地向您展示了活动记录方法如何呈现最终查询。

于 2012-11-30T23:24:02.187 回答