0

我正在尝试建立一个注册页面。我试图将要去露营的孩子与支付露营费用的父母联系起来。我已经建立了一个外键,这些查询在 phpAdmin 中运行良好。

将新孩子插入数据库的第一个查询工作正常。- 要求刚刚添加的 KidID 的第二个查询也返回正确的值。

但是,我的第三个查询需要第二个查询的结果不起作用。我对这个世界很陌生,非常感谢可以提供的任何帮助。

require_once 'login.php';
//sending data to server. 
$MySQL = new mysqli($db_hostName, $db_username, $db_password, $db_databaseName);



$MySQL->query("INSERT INTO `Kid`(`First_Name`, `Last_Name`, `Parent1_First_Name`, `Parent1_Last_Name`, `Parent2_First_Name`, `P2_Last_Name`, `P1_Phone`, `P2_Phone`, `P1_Email`, `P2_Email`, `EmergencyContact_FName`, `EmergencyContact_LName`, `EmergencyContact_Phone`, `KidStreetAddress`, `KidZip`, `SpecialNeeds`, `DOB`, `PickupID`, `kidSex`, `SwimID`) 
        VALUES ('$kidFirstName','$kidLastName','$p1FirstName','$p1LastName','$p2FirstName','$p2LastName','$p1FinPhone','$p2FinPhone','$p1Email','$p2Email','$eFirstName','$eLastName','$eFinPhone','$kidStreetAddress',$kidZip,'$kidSpecialNeeds','$cDOB','$kidPickup','$kidSex',(SELECT `SwimID` FROM `SwimmingStrength` WHERE `SwimID` = 1))");

$kidID = $MySQL->query("SELECT `KidID` FROM `Kid` ORDER BY `KidID` DESC LIMIT 1");
$kidID->data_seek($i);
$row = $kidID->fetch_row();
$kidFinID = $row[0];

$MySQL->query("INSERT INTO `Customer`(`First_Name`, `Last_Name`, `Billing_Address`, `Billing_Zip`, `Billing_State`, `Billing_Phone`, `Billing_Email`, `KidID`) 
VALUES ('$BillFirstName','$BillLastName','$BillFullAddress',$BillZip,'$BillState','$billFinPhone','$BillEmail',(SELECT `KidID` FROM `Kid` WHERE `KidID`=$kidFinID)");

$kidID->close();
$MySQL->close();

我的猜测是我需要确保 PHP 在运行第三个查询之前获取第二个查询的结果,但不知道如何设置它。

4

1 回答 1

0

INSERT有两种形式。一个是VALUES并且取常数。另一个是SELECT。两者不混合。

INSERT . . . SELECT只想要,像这样使用:

INSERT INTO `Customer`(`First_Name`, `Last_Name`, `Billing_Address`, `Billing_Zip`, 
                       `Billing_State`, `Billing_Phone`, `Billing_Email`, `KidID`) 
    select '$BillFirstName', '$BillLastName', '$BillFullAddress', $BillZip, '$BillState',
           '$billFinPhone', '$BillEmail', `KidID`
    from Kid
    where `KidID` = $kidFinID;

换句话说,您可以将常量放在SELECT列表行上。事实上,你根本不需要的VALUES形式INSERT

于 2013-07-24T01:26:32.960 回答