我的html表单具有输入字段(type="date")
和一个带有datatype "date"
列的mysql db,当我直接在phpmyadmin中进行查询时,该列可接受null。
同样,当我以HTML表单(使用浏览器默认日期选择器(选择日期时,查询运行正确。但是,当我离开上述输入空白时,显示了以下错误"不正确的日期值:'for列' received_date
'。
这是SQL和DB/Table Schema:
CREATE TABLE customer.tbl1 ( id INT NOT NULL AUTO_INCREMENT , usrname
VARCHAR(32) NOT NULL , received_date DATE NULL DEFAULT NULL , PRIMARY
KEY (id)) ENGINE = MyISAM;
$sql = "INSERT INTO tbl1 (usrname, received_date) VALUES ('$usrname',
'$received_date')";
谢谢大家。以下解决了问题:
if (empty($received_date)) {
$received_date= 'NULL';
}
但是,在此处发布问题之前,我尝试了(如果条件(,则没有单引号,但它不起作用。现在,单语引号解决了问题。
答案取决于您的应用程序:null是您数据的有效值吗?
如果可以,请更新您的数据库架构以允许null值(https://stackoverflow.com/a/35963275/3341745(。
如果您不希望此值无效,则数据库检查正在完成其工作。在这种情况下,您应该在允许用户提交之前验证网页上的数据(https://www.w3schools.com/js/js_validation.asp(。