-2

我有一个名为“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_beta. offre, CONSTRAINT offre_ibfk_4FOREIGN KEY ( idCatOffre) REFERENCES categorie_offre( idCatOffre))。

我该如何解决?

4

2 回答 2

0

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

于 2013-07-19T12:47:12.413 回答
0

我看到了一些奇怪的事情。

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

还要确保您用于#idFournisseur 和#idCatOffre 的任何值都应预先存在于相关表中。

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

$query = "insert into offre(nomOffre, idFournisseur, idCatOffre) values ($nomOffre,$idFournisseur,$idCatOffre)";
于 2013-07-19T12:57:10.653 回答