gpt4 book ai didi

php - 引用完整性错误

转载 作者:行者123 更新时间:2023-11-29 21:45:11 25 4
gpt4 key购买 nike

我在数据库期末考试项目中遇到了一些引用完整性错误的问题。我自己也尝试过解决这个问题,但没有成功,我希望有人能指出我正确的方向。

问题是我有三个表,前两个是第三个表的父表。我正在尝试构建一个 php 脚本来更新两个父表,然后将数据插入到子表中。到目前为止,我认为可以使用它,但每当我尝试使用它时,都会收到以下错误:

INSERT INTO Purchases (CustomerID, PurchaseOrderNo, PurchaseTotal, DateOfPurchase, SalesPersonID,SpecialOrder) VALUES ('10', '0000','100.00','0000-00-00','5555','N')

Cannot add or update a child row: a foreign key constraint fails ('xxxxxx'.'Purchases', CONSTRAINT 'Purchases_ibfk_1' FOREIGN KEY ('CustomerID') REFERENCES 'CustomerInfo'('CustomerID') ON DELETE CASCADE ON UPDATE CASCADE)'

有什么想法我哪里出错了吗?

        ########## FOREIGN KEY CHECK START ##########
$sql = "select count(*) as count from CustomerInfo where '$customerid' = CustomerID";
$result = mysqli_query($con,$sql)
or die('Error: ' . mysql_error());

$row = mysqli_fetch_assoc($result);
if ( $row['count']==0 ){
"INSERT INTO CustomerInfo ('CustomerID') VALUES ('$customerid');";
echo "<p>Customer ID Not Found. <br />New CustomerID Created.</p>";
}

$sql2 = "select count(*) as count from EmployeeInfo where '$salespersonid' = SalesPersonID;";
$result2 = mysqli_query($con,$sql)
or die('Error: ' . mysql_error());
$row2 = mysqli_fetch_assoc($result2);

if ( $row2['count']==0 ){
"INSERT INTO EmployeeInfo ('SalesPersonID')VALUES ('$salespersonid');";
echo "<p>Salesperson ID Not Found. <br />New Salesperson ID Created.</p>";
}

########## FOREIGN KEY CHECK END ##########

########## DATA ENTRY SQL STATEMENT START ##########
$sql3 = "INSERT INTO Purchases (CustomerID,
PurchaseOrderNo,
PurchaseTotal,
DateOfPurchase,
SalesPersonID,
SpecialOrder)
VALUES ('$customerid',
'$purchaseorderno',
'$purchasetotal',
'$dateofpurchase',
'$salespersonid',
'$specialorder')";
########### DATA ENTRY SQL STATEMENT END ##########

########## INPUT SUCCESS/FAILURE REPORTING#########
if (mysqli_query($con, $sql3)) {
echo "<P>Record Successfully Created</P><BR />";
} else {
echo "Error: " . $sql9. "<br>" . mysqli_error($con);
}
mysqli_close($con);
echo "<P>Connection Successfully Closed.</P>";

最佳答案

您没有执行 CustomerInfoEmployeeInfo 的插入查询

    $sql = "select count(*) as count from CustomerInfo where '$customerid' = CustomerID";
$result = mysqli_query($con,$sql)
or die('Error: ' . mysql_error());

$row = mysqli_fetch_assoc($result);
if ( $row['count']==0 ){

###THE NEXT LINE DOESN'T DO ANYTHING###
"INSERT INTO CustomerInfo ('CustomerID') VALUES ('$customerid');";
echo "<p>Customer ID Not Found. <br />New CustomerID Created.</p>";
}

此外,您不想在插入语句中的列名称周围加上单引号,因此可以:

INSERT INTO CustomerInfo ('CustomerID') VALUES ('$customerid')

你想要:

INSERT INTO CustomerInfo (CustomerID) VALUES ('$customerid')

关于php - 引用完整性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34165447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com