我想从3个表中删除数据,我有表user
,pemohon
,peserta
,其中所有表都使用外键相互连接。
这个查询工作,我已经尝试过mysql
DELETE user,pemohon,peserta
FROM user,pemohon,peserta
WHERE user.id_user=pemohon.id_pemohon AND
pemohon.id_pemohon=peserta.id_peserta AND pemohon.id_pemohon=1
所以我像这样转换为CodeIgniter
function delete_data($id)
{
$this->db->where('pemohon.id_pemohon=user.id_user');
$this->db->where('pemohon.id_pemohon=peserta.id_peserta');
$this->db->where('pemohon.id_pemohon',$id);
$this->db->delete('pemohon','user','peserta');
}
但是这段代码不起作用,你可以修复我的代码吗?感谢
答案 0 :(得分:2)
在删除功能中,您必须提供表格数组:
function delete_data($id)
{
$this->db->where('pemohon.id_pemohon=user.id_user');
$this->db->where('pemohon.id_pemohon=peserta.id_peserta');
$this->db->where('pemohon.id_pemohon',$id);
$this->db->delete(array('pemohon','user','peserta'));
}
如果不起作用,请执行查询功能($ id转义):
function delete_data($id)
{
$sql = "DELETE user,pemohon,peserta
FROM user,pemohon,peserta
WHERE user.id_user=pemohon.id_pemohon
AND pemohon.id_pemohon=peserta.id_peserta
AND pemohon.id_pemohon= ?";
$this->db->query($sql, array($id));
}
没有逃避$ id:
function delete_data($id)
{
$this->db->query("DELETE user,pemohon,peserta
FROM user,pemohon,peserta
WHERE user.id_user=pemohon.id_pemohon
AND pemohon.id_pemohon=peserta.id_peserta
AND pemohon.id_pemohon= $id";
}
答案 1 :(得分:1)
你可以尝试这个过程
function delete_data($id)
{
$this->db->delete('user', array('id_user' => $id));
$this->db->delete('pemohon', array('id_pemohon' => $id));
$this->db->delete('peserta', array('id_peserta' => $id));
}
答案 2 :(得分:0)
您可以将表名保存在数组中,然后将该数组作为参数传递给delete()。您可以阅读完整的示例:https://tutorialpace.com/CodeIgniter-Tutorials/CodeIgniter-Database-Delete