您好,我正在构建我的第一个网站,需要一个语句来删除 2 个表中包含用户指定的 Patient_ID 的所有记录:
我试过了
mysql_query("DELETE FROM appointment
WHERE Patient_ID='$patid'
UNION
DELETE FROM patient
WHERE Patient_ID='$patid'");
还有
mysql_query("DELETE FROM appointment INNER JOIN patient
WHERE Patient_ID='$patid'");
非常感谢对此的一些帮助!
提前致谢
最佳答案
我宁愿为两个delete 语句做一个StoredProcedure
。
DELIMITER $$
CREATE PROCEDURE DeletePatient(IN PatientID INT)
BEGIN
DELETE FROM appointment WHERE Patient_ID = PatientID;
DELETE FROM patient WHERE Patient_ID = PatientID;
END $$
DELIMITER ;
在你的 php 脚本上,
mysql_query("CALL DeletePatient($patid)");
作为旁注,查询易受 SQL Injection
攻击如果变量的值(s) 来自外部。请查看下面的文章,了解如何预防它。通过使用 PreparedStatements
,您可以摆脱在值周围使用单引号。
关于php/mysql如何删除不同表中的同名字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14875729/