我一直在试图弄清楚如何从数据库中的多个表中删除数据。只是为了给出一些背景知识,有一个用户表可以保存基本信息,如名字和姓氏。然后有一个登录表,其中包含密码和用户名。我正在创建一个管理页面,允许我查看包含两个表中信息的用户列表。那部分工作正常。我的问题是尝试创建删除脚本。 我尝试过单独的查询,但我没有得到任何结果。有人可以给我指点吗?或者至少在某些地方我可以专门阅读这个内容?
// Get IDs
$lid = $_POST['lid'];
$uid = $_POST['uid'];
// Delete the product from the database
require_once('database.php');
$query = "DELETE user,login FROM user INNER JOIN login ON user.uid = '$uid' AND login.lid= '$lid'";
$db->exec($query);
答案 0 :(得分:2)
添加一个外键,然后在你的列定义中使用ON DELETE CASCADE,它将在删除父行时删除子行
答案 1 :(得分:0)
它是否取决于数据库(以及可能存在的约束)是否可以在单个DML语句中执行此操作。但是,更简单的选择通常是使用两个DML语句执行类似的操作。
$query = "DELETE FROM user WHERE user.uid = '$uid'";
$db->exec($query);
$query = "DELETE FROM login WHERE login.lid= '$lid'";
$db->exec($query);