gpt4 book ai didi

php - 使用一条语句从多个表中删除多个mysql行

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:38 25 4
gpt4 key购买 nike

我能找到的只是关于连接和内部连接的答案,

$sql= "DELETE FROM `Item` WHERE `ItemID`='$_POST[id]';
DELETE FROM `Info` WHERE `Item_ItemID`='$_POST[id]';
DELETE FROM `ListPics` WHERE `Item_ItemID`='$_POST[id]';";

这给了我一个错误。

Error: You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'DELETE FROM `Info` WHERE
`Item_ItemID`='1'; DELETE FROM `ListPics` WHERE `I' at line 2

我真的不明白联接是如何工作的,我什至不确定它们是否适用我真的只想用一条语句从 3 个表中删除 3 行。

最佳答案

您可以使用 mysqli_multi_query 运行多个查询;您可以将它们作为分号分隔的列表传递:

$sql= "DELETE FROM `ListPics` WHERE `Item_ItemID`='$_POST[id]';
DELETE FROM `Info` WHERE `Item_ItemID`='$_POST[id]';
DELETE FROM `Item` WHERE `ItemID`='$_POST[id]';";

mysqli_multi_query($dbConn, $sql)

我调换了删除的顺序。因为 ListPics 和 Info 中有一个指向 Item 的外键,所以你需要先删除它们,否则你会得到违反外键约束的错误.

请注意,您也可以在数据库中使用 ON DELETE CASCADE 执行此操作 - 使用它,当您从 Item 中删除某些内容时,任何引用 ItemID 作为外键的内容也为您删除。感谢莱昂纳多提供的信息链接。

关于php - 使用一条语句从多个表中删除多个mysql行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20690971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com