Mysql/php bind_param set null


Mysql/php bind_param set null

它说"错误:'交付日期'列不能为空。

$delivereddate = null;
$stmt = $connection->prepare("INSERT INTO orders (receiptid, date, cid, cardno, expirydate,      expecteddate, delivereddate) VALUES (?,?,?,?,?,?,?)");
$stmt->bind_param("sssssss", $receiptid, $date, $cid, $cardno, $expirydate, $expecteddate, $delivereddate);

相关表为:

CREATE TABLE Orders(
ReceiptId char(30) not null,
Date date not null,
CId char(30) not null,
CardNo char(30) not null,
ExpiryDate date not null,
ExpectedDate date not null,
DeliveredDate date, 
PRIMARY KEY(ReceiptId));

我尝试在mysql工作台中插入值,我可以做到:

INSERT INTO orders VALUE
(1, '2012-12-10', 1, 1, '2014-2-3', '2012-12-23', null);

试试这个

$delivereddate = '2014-11-26 10:40:35';  // some date
$stmt = $connection->prepare("INSERT INTO orders (receiptid, date, cid, cardno, expirydate,      expecteddate, delivereddate) VALUES (?,?,?,?,?,?,?)");
$stmt->bind_param("sssssss", $receiptid, $date, $cid, $cardno, $expirydate, $expecteddate, $delivereddate);

我认为错误是由于$delivereddate = null;

错误注释...

只需更改表sql以允许DeliveryDateNULL

CREATE TABLE Orders(
ReceiptId char(30) not null,
Date date not null,
CId char(30) not null,
CardNo char(30) not null,
ExpiryDate date not null,
ExpectedDate date not null,
DeliveredDate date null, 
PRIMARY KEY(ReceiptId));

其余的应该可以工作。(前提是您要在该列中存储null