Php 外键约束失败

Php 外键约束失败,php,mysql,Php,Mysql,我对php和mysql比较陌生。我在leave表中插入值时遇到的问题。我的leave表包含以下列 1.盖(内部主键) 2.empname(varchar) 3.用户名(varchar) 4.点头(整数) 5.sdate(日期) 6.edate(日期) 7.原因(varchar) 8.行动(varchar) 9.empID(INT外键) 此处empID是用户表中的外键引用。将值插入leave表时遇到的问题。错误如下所示 无法添加或更新子行:外键约束失败(db_attendance1leave,约束

我对php和mysql比较陌生。我在
leave
表中插入值时遇到的问题。我的
leave
表包含以下列

1.盖(内部主键)

2.empname(varchar)

3.用户名(varchar)

4.点头(整数)

5.sdate(日期)

6.edate(日期)

7.原因(varchar)

8.行动(varchar)

9.empID(INT外键)

此处
empID
用户
表中的
外键
引用。将值插入
leave
表时遇到的问题。错误如下所示

无法添加或更新子行:外键约束失败(
db_attendance1
leave
,约束
leave_ibfk_1
外键(
empID
)引用
用户(
empID

在这里,我只是发送查询,它就在这里

    mysql_query("INSERT INTO `leave` 
           (`empname`, `username`,
            `nod`, `sdate`, `edate`,
            `reason`,`action`) 
            VALUES ('$empname', '$username', 
            '$nod', '$sdate', 
            '$edate', '$reason','');",
            $dbCon) or die(mysql_error());

外键约束意味着一个表不接受会“破坏”外键的插入、更新或删除。这意味着,如果用户中不存在新的EmpID,则无法更新EmpID。如果用户表中不存在新的EmpID,则不能添加它,等等。 所以要解决这个问题,您需要确保您试图添加到表“leave”的EmpID首先存在于表“users”中。
外键可能是一个真正强大的项目,但也可能是一个真正的痛苦。由于您正在处理的数据库有外键约束,我建议您仔细阅读一下:

Borniet,您帮助我解决了类似的问题

@OP-我所要做的就是在表中创建一个对应的行,这样外键就存在了。 例如,表1有列名 表2有一个列friends\u name,一个外键绑定到表1中的name。 我得到这个错误是因为我试图在表2中插入一行,其中friends_名称引用了表1中不存在的名称。所以我创造了这个名字,我们开始比赛:)

你可以把

SET FOREIGN_KEY_CHECKS=0;
然后运行您的查询。再次完成后,通过将其设置回1

SET FOREIGN_KEY_CHECKS=1;

确定empID首先进入用户表…亲爱的朋友,为什么你发布重复。这可能会起作用,但也可能导致一些无效数据进入表中。只有在确定错误是假的情况下才关闭外键。