简体   繁体   English

无法添加或更新子行:外键约束失败(Mysql和外键)

[英]Cannot add or update a child row: a foreign key constraint fails (Mysql and Foreign key)

When I trying to run the code, this error shows up 当我尝试运行代码时,出现此错误

Cannot add or update a child row: a foreign key constraint fails ( hotel_info . results , CONSTRAINT results_ibfk_5 FOREIGN KEY ( CustomerID ) REFERENCES customer ( CustomerID ) ON DELETE CASCADE ON UPDATE CASCADE) 不能添加或更新子行,外键约束失败( hotel_inforesults ,约束results_ibfk_5外键( CustomerID )参考customerCustomerID )ON DELETE CASCADE ON UPDATE CASCADE)

Here is the code 这是代码

$result = mysql_query("select customer.CustomerID from customer inner join results on customer.CustomerID = results.CustomerID where customer.Username = '".$aid."'");
            if (false === $result) 
            {
                echo     mysql_error();
            }

if (isset($_POST["submitbtn"]))
{
    $LP = $_POST["LP"];
    $budget = $_POST["budget"];
    $checkin = $_POST["CheckIn"];
    $checkout = $_POST["CheckOut"];
    $unit = $_POST["unit"];
    $smokep = $_POST["SmokeP"];
    $spreq = $_POST["sp_req"];


        if($checkin>$checkout)
        {
        ?>
        <script type="text/javascript">
                alert("End Date must greater than Start Date.");
        </script>           

        <?php
        }
        else
        {
            $query = mysql_query("INSERT INTO results(`LP`, `budget`, `CheckIn`, `CheckOut`, `unit`, `SmokeP`, `sp_req`, `CustomerID`) values ('$LP', '$budget', 
                                        '$checkin', '$checkout', '$unit', '$smokep', '$spreq', '$result')");    

            if (false === $query) 
            {
                echo     mysql_error();
            }

            echo "Reservation form has been submitted!<br>
                <a href=view.php>view all</a>";

        }
}

Here is the sql 这是SQL

CREATE TABLE IF NOT EXISTS `results` (
  `BookID` int(10) NOT NULL AUTO_INCREMENT,
  `LP` varchar(50) DEFAULT NULL,
  `budget` varchar(50) DEFAULT NULL,
  `CheckIn` varchar(50) DEFAULT NULL,
  `CheckOut` varchar(50) DEFAULT NULL,
  `unit` int(50) DEFAULT NULL,
  `SmokeP` varchar(50) DEFAULT NULL,
  `sp_req` varchar(255) DEFAULT NULL,
  `CustomerID` int(10) NOT NULL,
  PRIMARY KEY (`BookID`),
  KEY `Username` (`CustomerID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=48 ;

CREATE TABLE IF NOT EXISTS `customer` (
  `CustomerID` int(10) NOT NULL AUTO_INCREMENT,
  `Username` varchar(50) NOT NULL,
  `Password` varchar(50) NOT NULL,
  `Email` varchar(50) NOT NULL,
  `ContactNo` int(10) NOT NULL,
  PRIMARY KEY (`CustomerID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

I've already stuck for two days because of this error, please help. 由于此错误,我已经停留了两天,请提供帮助。

from the error it is clear that foreign key constraint fails. 从错误中可以明显看出,外键约束失败。 Please check your customer table which must have CustomerID that you are trying to insert in results table insert query ie check value of $id . 请检查您的客户表,该表必须具有要在结果表插入查询中插入的CustomerID ,即检查$ id的值。 have you assigned any value for $id 您是否为$ id分配了任何值

$query = mysql_query("INSERT INTO results(`LP`, `budget`, `CheckIn`, `CheckOut`, `unit`, `SmokeP`, `sp_req`, `CustomerID`) values ('$LP', '$budget', 
                                        '$checkin', '$checkout', '$unit', '$smokep', '$spreq', '$id')");    

In above query value for $id not set so first assign value to that.

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM