php / mysql:无法添加或更新子行

时间:2013-07-19 12:43:28

标签: php mysql

我有一个名为“project_beta”的数据库,其中包含以下表格:offre,categorieOffre和fournisseur。

-fournisseur (idFournisseur, nomFournisseur)
-offre (idOffre, nomOffre, #idFournisseur, #idCatOffre)
-categorie_offre (idCatOffre, nomCatOffre, #idOffre);

当我这样做时

INSERT INTO offre VALUES ('','".$nomOffre."','".$idFournisseur."','"idCatOffre"') 

显示此错误:

  

无法添加或更新子行:外键约束失败(project_betaoffre,CONSTRAINT offre_ibfk_4 FOREIGN KEY(idCatOffre)参考categorie_offreidCatOffre))。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

外键约束用于确保保留数据完整性。如果此约束失败,那是因为您尝试使用未包含在categorie_offre表中的类别ID。

答案 1 :(得分:0)

我看到了几件奇怪的事情。

  • 您正在idOffre字段中插入空值。这对于id来说是一个奇怪的奇怪价值。通常我希望这个id由数据库自动生成,你不​​应该在那里插入任何内容。
  • 对于第四个字段,您离开文本模式但不使用连接。
  • 我会再次建议用#开始变量的名称。此外,你不再使用那个角色了。
  • 内部双引号php替换变量,因此您不必连接
  • 我希望#idFournisseur和#idCatOffre也是数字,所以它们的值不应该在insert语句中单引号。

另外,请确保您为#idFournisseur和#idCatOffre使用的值应该在相关表格中预先存在。

只是一个疯狂的猜测......你不应该做这样的事情

$query = "insert into offre(nomOffre, idFournisseur, idCatOffre) values ($nomOffre,$idFournisseur,$idCatOffre)";