簡體   English   中英

違反完整性約束:1452 PHP mysql Web應用程序在最后一次插入調用時崩潰

[英]Integrity constraint violation: 1452 php mysql web application crashes on last insert call

我的POS系統php Web應用程序遇到了非常令人沮喪的問題。 我將僅包含錯誤以使其簡短。

MySQL數據庫包含一個customerorderorderline表(您需要了解的所有錯誤信息)。 當我運行以下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 )參考ordercustomerid )ON刪除無操作更新無操作

我對為什么不能插入訂單行信息感到非常困惑,如果需要更多信息,請這樣說。

FOREIGN KEY (orderid) REFERENCES order (customerid)的錯誤信息表明您相關orderline.orderid與現場order.customerid場。 這導致mysql嘗試將1123456789匹配,產生您描述的錯誤。

你應該改變的外鍵涉及到的id字段中order表(無論在主鍵的名字order表)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM