[英]Integrity constraint violation: 1452 php mysql web application crashes on last insert call
我的POS系統php Web應用程序遇到了非常令人沮喪的問題。 我將僅包含錯誤以使其簡短。
MySQL數據庫包含一個customer
, order
和orderline
表(您需要了解的所有錯誤信息)。 當我運行以下PHP腳本時,它在注釋為ERROR的行崩潰。 我的客戶表有一個稱為customerid的自動增量PK,這就是為什么由於以前的插入而在插入訂單行時我有一個1的原因。
require 'connect.php';
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO customer (customerid, fname, lname)
VALUES (123456789, 'Dan', 'Dentin')";
$pdo->exec($sql);
$dt = new DateTime();
$dt = $dt->format('Y-m-d H:i:s');
$sql = "INSERT INTO `order` (date, customerid)
VALUES ('$dt', 123456789)";
$pdo->exec($sql);
$sql = "INSERT INTO orderline (orderid, sprice, `status`)
VALUES (1, 5647, 'PAID')";
$pdo->exec($sql); //ERROR IT CRASHES HERE ON MY LAST INSERT CALL
錯誤提示:
違反完整性約束:1452無法添加或更新子行:外鍵約束失敗FOREIGN KEY(
orderid
)參考order
(customerid
)ON刪除無操作更新無操作
我對為什么不能插入訂單行信息感到非常困惑,如果需要更多信息,請這樣說。
該FOREIGN KEY (orderid) REFERENCES order (customerid)
的錯誤信息表明您相關orderline.orderid
與現場order.customerid
場。 這導致mysql嘗試將1
與123456789
匹配,產生您描述的錯誤。
你應該改變的外鍵涉及到的id
字段中order
表(無論在主鍵的名字order
表)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.