mysql INSERT命令问题

时间:2017-03-22 09:20:38

标签: php mysql

以下是我的表结构:

CREATE TABLE `order` (
    `ID` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `RenterRole_ID` INT(11) NULL DEFAULT NULL,
    `CreationTime` DATETIME NULL DEFAULT NULL,
    `BeginRentingDate` DATETIME NULL DEFAULT NULL,
    `EndRentingDate` DATETIME NULL DEFAULT NULL,
    `TripStartDate` DATETIME NULL DEFAULT NULL,
    `TripEndDate` DATETIME NULL DEFAULT NULL,
    `DeliveryDetails` VARCHAR(255) NULL DEFAULT NULL,
    `ReturningDetails` VARCHAR(255) NULL DEFAULT NULL,
    `SpareSpotBatteries` INT(11) NULL DEFAULT NULL,
    `spareInReach15Batteries` INT(11) NULL DEFAULT NULL,
    `Remarks` TEXT NULL,
    `OrdersCenter_ID` INT(11) NOT NULL DEFAULT '100',
    `HashedCCNumber` VARCHAR(255) NULL DEFAULT NULL,
    `CCExpiration` DATETIME NULL DEFAULT NULL,
    `CCHolderName` VARCHAR(255) NULL DEFAULT NULL,
    `CreatingController` VARCHAR(255) NULL DEFAULT NULL,
    `Debug` BIT(1) NOT NULL DEFAULT b'0',
    `TravelInsuranceOffer` BIT(1) NULL DEFAULT b'0',
    `DeviceInsurance` BIT(1) NULL DEFAULT b'0',
    `OrdersCenterRemarks` TEXT NULL,
    `Rivhit` VARCHAR(100) NULL DEFAULT NULL,
    `Invoice` VARCHAR(100) NULL DEFAULT NULL,
    `Payment` VARCHAR(200) NULL DEFAULT NULL,
    PRIMARY KEY (`ID`),
    INDEX `FK_OrderOrdersCenter_idx` (`OrdersCenter_ID`),
    INDEX `FK_OrderRenterRole_idx` (`RenterRole_ID`),
    CONSTRAINT `FK_OrderOrdersCenter` FOREIGN KEY (`OrdersCenter_ID`) REFERENCES `orderscenter` (`ID`),
    CONSTRAINT `FK_OrderRenterRole` FOREIGN KEY (`RenterRole_ID`) REFERENCES `renter_role` (`ID`)
)

当我尝试通过以下代码插入数据时:

$query = "INSERT INTO order (RenterRole_ID) VALUES (?)";
$stmt = $mysqli->prepare($query);
if (false === $stmt) {
    echo 'prepare() failed: ' . htmlspecialchars($mysqli->error);
    die();
}
$stmt->bind_param('i',$newRenterId);    
if (false === $bind) {
    echo 'bind_param() failed: ' . htmlspecialchars($stmt->error);
    die();
}
$stmt->execute();
$newOrderId = $stmt->insert_id;
$stmt->close(); 

导致以下错误:

  

prepare()失败:您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便使用附近的顺序(RenterRole_ID)VALUES(?)'在第1行

在其他表中,INSERT代码只能处理有问题的订单表。

0 个答案:

没有答案