我试图通过使用外键从连接到另一个表的表中删除,当我删除用户时,我希望另一个表中的关联数据也被删除。但是我总是收到错误。我有删除用户的代码:
public function delete_user($id){
$stmt = $this->conn->prepare("SET foreign_key_checks=0");
$stmt = $this->conn->prepare("DELETE FROM tbl_users WHERE userID=:id");
$stmt->bindparam(":id",$id);
$stmt->execute();
return $stmt;
}
如果用户没有创建任何文件,它们将被删除,因为它们未连接到另一个表。但是如果用户创建了一个文件,我会收到这个错误:
致命错误:未捕获的异常' PDOException'与消息 ' SQLSTATE [23000]:完整性约束违规:1451无法删除 或更新父行:外键约束失败 (
freshburst
。tbl_documents
,CONSTRAINTtbl_users_userID_fk
外键(userID
)参考tbl_users
(userID
))'在 C:\ xampp \ htdocs \ IP3-GROUP13 \ class.user.php:198堆栈跟踪:#0 C:\xampp\htdocs\IP3-GROUP13\class.user.php(198): PDOStatement->execute() #1 C:\xampp\htdocs\IP3-GROUP13\deleteUser.php(19): USER->delete_user('3') #2 {main} thrown in C:\xampp\htdocs\IP3-GROUP13\class.user.php on line 198
Freshburst是数据库的名称,tbl_users包含用户信息,tbl_documents包含他们创建的文档。
提前致谢。