在将数据插入到表中时,它应该正常工作。然而,当我看表时,我注意到外键都不起作用。这是“比萨饼”桌,应该是外键的 BaseID
以及 ToppingID
从其他表格中:
如上图所示,toppingid为空。而在如下所示的实际“pizzatoppings”表中,toppingid不为空:
这是目前发生在所有我的外键在整个数据库。
但是,这会引发以下错误:
完整性约束冲突:1452无法添加或更新子行:外键约束失败( pizzadelivery
. pizza
,约束 FK_BaseID
外键( BaseID
)参考文献 pizzabase
( BaseID
))
1条答案
按热度按时间uurity8g1#
$stmt = $pdo->prepare('INSERT INTO PizzaToppings ...');
...
$stmt->execute();
$toppingId = $pdo->lastInsertId();
$stmt = $pdo->prepare('INSERT INTO PizzaBase ...');
...
$stmt->execute();
$baseId = $pdo->lastInsertId();
$stmt = $pdo->prepare('INSERT INTO Pizza (..., ToppingID, BaseID) VALUES (..., :ToppingID, :BaseID)');
...
$stmt->bindParam(':ToppingID',$toppingId);
$stmt->bindParam(':BaseID',$baseId);
$stmt->execute();