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

时间:2017-02-21 05:07:21

标签: php mysql

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

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

overfitting

我收到此错误:

  

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

现在我推断当在主表中创建学生时,我还应该在详细信息表中插入一个新值,所以当我想插入学生的信息时,表将有stu_id_fk,其余的detials将是空白的,准备插入。那是对的吗?

这是我添加学生的查询

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

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

编辑:我的问题与建议的类似问题不同。我问的是在查询代码中要写什么,以免因外键而出错。

谢谢。

1 个答案:

答案 0 :(得分:3)

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

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