【发布时间】:2017-03-13 10:17:11
【问题描述】:
我有一个函数可以让我删除表格上的一行。但问题是,为了数据库完整性,我必须删除另一个表上与我要删除的记录相关的另一行。这是我的功能:
public function delete($tab)
{
$this->db->where('id', $tab['id']);
$this->db->delete('agent', $tab);
// Here the query is "DELETE from agent WHERE id = $tab['id']"
$this->db->where('id_agent', $tab['id']);
$this->db->delete('agent_vendeuse', $tab);
// Here the query gives "Delete from agent_vendeuse WHERE id_agent= $tab['id'] AND id=$tab['id'];" Which is where the error comes from
}
我的函数出现错误数据库错误:
DELETE FROM `agent_vendeuse` WHERE `id_agent` = '2' AND `id` = '2'
这意味着在我影响 where 子句的新索引 'id_agent' 后,前一个 'id' 仍在缓存中。
$tab 变量来自我的表单的 $_POST。我只是在函数中更改了它的名称。
我想我必须在第一次删除后清理缓存但是如何写呢?
【问题讨论】:
-
你能发布你得到的实际错误信息吗?
-
avenir.ro/… -- 有点偏离轨道,但这可能有助于在 CI 中建立关系
-
@Pacio 我在第二个查询中遇到了 codeigniter 错误,因为我的 where 子句 id 和 id_agent 有两个条件,它们位于不同的表上
-
好的,现在明白了。但是你传递给 delete() 的 $tab 变量是什么?第二个参数应该是 where 子句,但您已经使用 where() 调用完成了。
标签: php mysql codeigniter codeigniter-3