我使用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代码,或一些关于表本身。
代码的问题是您没有执行您的查询。试试这样:
for($x=1; $x <= $numberBeds; $x++){
$sql = "INSERT INTO Beds (roomName, bedNumber, patientID) VALUES('$roomName','$x', NULL)";
mysqli_query($con,$sql);
}
我猜你只在循环之后执行查询,因此,当然只有最后一个查询被执行,而不是每个。