如何使用alisesonsql查询删除表?

rta7y2nd  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(298)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

10个月前关门了。
改进这个问题
我得到了
sql语法有错误;请查看与您的mariadb服务器版本对应的手册,以获取正确的语法,以便在我尝试通过2个表从id中删除数据时,在第1**行使用near'as idab,b.id\u skb as idab from skd a,skb b b where idab='5'。。。在这里,

<?php 

include './../../koneksi.php';

$idab= $_GET['idab'];

if (mysqli_query($koneksi, "DELETE a.id_skd as idab, b.id_skb as idab FROM skd a, skb b WHERE idab='$idab' "));{

    echo ('<script> 
        alert("Data Anda Berhasil Dihapus...!!!");
        window.location="http://localhost/administrasi_kelurahan/pengguna/administrator/Riwayat_Notif.php";
        </script>');

}

?>
2exbekwf

2exbekwf1#

表演二 DELETE 查询,不是一个。使用事务使其原子化。

$stmt1 = mysqli_prepare($koneski, "DELETE FROM skd WHERE idab = ?");
mysqli_stmt_bind_param($stmt1, "s", $idab);
$stmt2 = mysqli_prepare($koneski, "DELETE FROM skb WHERE idab = ?");
mysqli_stmt_bind_param($stmt2, "s", $idab);
mysqli_query("START TRANSACTION");
mysqli_stmt_execute($stmt1);
mysqli_stmt_execute($stmt2);
mysqli_query("COMMIT");

我还演示了如何使用准备好的语句来防止sql注入。
除非表之间存在关系(如外键),否则不能在单个查询中执行此操作。在这种情况下,你可能会利用 ON DELETE CASCADE 从父表中删除时自动从子表中删除。
如果数据相关,可以使用 JOIN ```
DELETE a, b
FROM skb AS a
JOIN skb_pengikut AS b ON a.id = b.id_skb
WHERE a.id = ?

但如果你申报 `id_skb` 作为外键 `ON DELETE CASCADE` 选项,则您只需执行以下操作:

DELETE FROM skb
WHERE id = ?

它会自动从 `id_pengikut` .
qvsjd97n

qvsjd97n2#

尝试从两个表中删除时,应该使用事务将两个独立的删除操作耦合起来,并具有完全回滚的可能性。否则,一个表中的记录可能会被删除,而另一个表中的记录可能不会被删除。如果两个表a被引用整数链接,则首先在引用表a中删除它,然后在引用表中删除它。

相关问题