我有一个表单,可以在其中插入一些正在存储在服务器中的数据。
表单包含许多日期字段。我注意到,如果将日期字段留为空,则将其设置为30.11.-0001
如果日期字段为空,我如何才能存储空字符串?
在phpmyadmin中,日期字段的默认值设置为NULL。
插入方法:
public function insert($data)
{
if (empty($data)) {
error_log(get_class() . " - " . __FUNCTION__ . " : data not set or empty");
return false;
}
$now = date("Y-m-d H:i:s");
$sql = " INSERT INTO ". self::TABLE
." ( "
. " property_id"
. ", country_id"
. ", property_item_type_id"
. ", prio"
. ", reg_date"
. ", reg_no"
. ", files_no"
. ", release_date"
. ", entry_date"
. ", status"
. ", runtime_max"
. ", runtime_payed"
. ", prio_date"
. ", info"
. ", create_date"
. ", create_by"
. ", update_date"
. ", update_by"
. " ) "
. " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $this->con->prepare($sql);
$stmt->bind_param(
"iiiissssssssssssss"
// i
,$data["property_id"]
,$data["country_id"]
,$data["property_item_type_id"]
,$data["prio"]
// s
,$data["reg_date"]
,$data["reg_no"]
,$data["files_no"]
,$data["release_date"]
,$data["entry_date"]
,$data["status"]
,$data["runtime_max"]
,$data["runtime_payed"]
,$data["prio_date"]
,$data["info"]
,$now
,$data["email"]
,$now
,$data["email"]
);
$stmt->execute();
$message["error"] = "Unable to insert new item!";
return $this->checkAffectedRows($stmt, $message);
}发布于 2019-10-23 15:26:25
解决方案是检查这些值是否为空,并将其设置为NULL,然后将其存储到数据库中。
$data["release_date"] = (strtotime($data["release_date"]) === false) ? NULL : $data["release_date"];https://stackoverflow.com/questions/58525671
复制相似问题