繁体   English   中英

在PHP中使用外键的正确方法

[英]The right way to use foreign keys in PHP

我创建了两个表。 一个用于学生,并且将stu_id作为主键,另一个用于保存有关学生的信息,并且将stu_id_fk作为外部键。

我使用phpmyadmin的界面设置了两者之间的关系,并且工作正常,它甚至显示了将鼠标悬停在值上时外键正在引用哪个学生(我直接从phpmyadmin插入了一些值,而不是通过php代码)。 所以当我想插入学生的信息时,我创建了一个学生“ Billy”,我使用以下查询

$query= " INSERT INTO stu_details (phone,email,location,website,description ) VALUES ('$phone', '$email', '$location', '$website', '$description') ";

我得到这个错误:

无法添加或更新子行:外键约束失败

现在我推断出,在主表中创建学生时,我还应该在明细表中插入一个新值,因此当我要插入学生的信息时,该表将具有stu_id_fk,其余的细节将为空,准备插入。 那是对的吗?

这是我要添加学生的查询

$qry= "INSERT INTO students (type,class, username,password,description,reg_date) values ('$type', '$class','$username','$password','$description','$date')"; 

我究竟做错了什么? 是不是在主表中添加学生时没有在子表中插入FOREIGN KEY值? 如果是,我应该如何编辑查询以使其能够在一个查询中插入两个表中?

编辑:我的问题与建议的类似问题不同。 我在问要在查询代码中写些什么,以免由于外键而导致错误。

谢谢。

为了在代码级别维护FK关系,您必须遵循以下规则:

  • 将数据插入主表,并从该插入操作获取inserted ID
  • 将具有主ID的子表数据插入子表中,该子表引用父表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM