gpt4 book ai didi

php - 空 DATETIME 值存储为 0000-00-00 00 :00:00 instead of NULL in MySQL

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:24 25 4
gpt4 key购买 nike

<分区>

我有可选的日期和时间表单字段,它们组合在一起形成一个 DATETIME 友好的字符串,然后将其发送到 MySQL 数据库。相关的 MySQL 列数据类型是 DATETIME,默认值为 NULL。当日期和时间字段完成时,它会正确保存;但是,当这些可选表单字段为空时,日期时间将存储为 0000-00-00 00:00:00 而不是 NULL。它需要存储为 NULL,我不知道为什么不是。这是我的代码:

$Date_Query_Received1   = mysqli_real_escape_string($conn, $_POST['Date_Query_Received']);
$Date_Query_Received2 = implode("-", array_reverse(explode("/", $Date_Query_Received1)));
$Time_Query_Received1 = mysqli_real_escape_string($conn, $_POST['Time_Query_Received']);
$Time_Query_Received2 = $Time_Query_Received1.':00';

if (empty($_POST['Date_Query_Received']) || empty($_POST['Time_Query_Received'])) {
$Date_Query_Received = NULL;
$Time_Query_Received = NULL;
} else {
$Date_Query_Received = $Date_Query_Received2;
$Time_Query_Received = $Time_Query_Received2
}

$Date_Time_Query_Received = $Date_Query_Received.' '.$Time_Query_Received;

mysqli_query($conn, "INSERT INTO log (Date_Time_Query_Received) VALUES ('$Date_Time_Query_Received')";

表单日期采用 DD/MM/YYYY 格式,因此 implode(...array_reverse(...)) 转换为 MySQL 友好的 DATETIME YYYY -MM-DD 格式。这同样适用于将“:00”附加到时间值,因为表单字段 jQuery timepicker 仅为 hh:mm 设置 - 不需要秒。

可能与SQL语句中$Date_Time_Query_Received两边的引号有关;但是,如果没有它们,查询将失败。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com