gpt4 book ai didi

mysql - 为什么我的时间类型不默认为空?

转载 作者:行者123 更新时间:2023-11-30 01:31:49 26 4
gpt4 key购买 nike

如果我查看 phpMyAdmin 下的表结构,它具有以下结构:

类型 - 时间

NULL - 是

默认 - NULL

那么为什么当我执行一个简单的 INSERT INTO 操作时...即使我输入的值是 null,时间值也会默认为 00:00:00 >。对于 int 类型,我遇到了同样的问题,但对于 varchar 却没有。

编辑 - 我添加了以下内容。

mysql中的

zip是int类型(默认NULL),mysql中的st_time是time类型(默认NULL)。我已经测试了代码,它适用于 zip,但不适用于 st_time

if($zip == NULL){
$zip = 'NULL';
}
if($st_time == NULL){
$st_time = 'NULL';
}

$cont=mysql_query("INSERT INTO mytable(zip,st_time)VALUES($zip, $st_time)");

我在 stackoverflow 上找到了这段代码,它显然解决了问题,但我不知道如何使用下面的代码插入多个值。

mysql_query("INSERT INTO cb (name) VALUES (" . ($name == null ? "NULL" : "'$name'") . ")");

使用解决方案编辑 TAKE 2(警告 - 它很难看)

if($zip == NULL){
$zip = 'NULL';
}
if($st_time == NULL){
$st_time = 'NULL';
}
else{
$st_time = "'".$st_time."'";
}

$cont=mysql_query("INSERT INTO mytable(zip, st_time)VALUES($zip, $st_time)");

最佳答案

您正在使用带引号的字符串'NULL'。使用 NULL 代替(不是带引号的字符串,而是 NULL 值)

因此,请设置$st_time = NULL,或者更确切地说,在您的情况下,当您测试它是否为NULL时,不要管它。

MySQL 期望将 TIME 字段作为字符串 '12:00:00' 传递,并且它可以将其解析为其内部存储类型。如果您传递的字符串无法正确解析,它将默认为 00:00:00

关于mysql - 为什么我的时间类型不默认为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17358741/

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