我使用for
循环将特定数量的行添加到表Beds
作为占位符。代码不会抛出任何错误,但只有最后编号的床出现在数据库中。即:如果您尝试添加10张床,则仅添加10张床。
以下是我正在使用的for
循环:
$roomName = mysqli_real_escape_string($con, $_POST['roomName']);
$numberBeds = mysqli_real_escape_string($con, $_POST['numberBeds']);
for($x=1; $x <= $numberBeds; $x++) {
$sql = "INSERT INTO Beds (roomName, bedNumber, patientID) VALUES('$roomName','$x', NULL)";
}
以下是附表:
DROP TABLE IF EXISTS `ChildrensHospital`.`Beds` ;
CREATE TABLE IF NOT EXISTS `ChildrensHospital`.`Beds` (
`roomID` INT(20) NOT NULL AUTO_INCREMENT,
`bedNumber` INT(10) NOT NULL,
`patientID` INT(20) NULL,
PRIMARY KEY (`roomID`, `bedNumber`),
INDEX `fk_Beds_PatientPersonalInformation1_idx` (`patientID` ASC),
CONSTRAINT `fk_Beds_PatientPersonalInformation1`
FOREIGN KEY (`patientID`)
REFERENCES `ChildrensHospital`.`PatientPersonalInformation` (`patientID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
我不确定它是否是我的PHP代码中的语法错误,或者是关于表本身的错误。 任何帮助将不胜感激。
答案 0 :(得分:3)
您的代码存在的问题是您没有执行您的查询。试试这样:
for($x=1; $x <= $numberBeds; $x++){
$sql = "INSERT INTO Beds (roomName, bedNumber, patientID) VALUES('$roomName','$x', NULL)";
mysqli_query($con,$sql);
}
我猜你只是在循环之后执行你的查询,因此,当然只会执行最后一个查询而不是每个查询。