【问题标题】:Mysql - inserting NULL values in datetime fieldMysql - 在日期时间字段中插入 NULL 值
【发布时间】:2017-05-23 10:16:13
【问题描述】:

我正在更新表单中的条目

这样做时我清除了 datetimepicker 中的值并继续

if (empty($_POST['dtp'])) {
$Dtp = NULL;
}

然后发布为

'dtp' => $Dtp

SQL回显就像

UPDATE tbl_dummy SET Id="3",dtp="",Remark="update1"

错误是

1292 - 不正确的日期时间值:第 1 行的列 'dtp' 的 ''

请指导我解决这个问题并在 db 中插入 NULL 值

【问题讨论】:

  • 你能告诉我们生成sql的php代码吗?
  • 我强烈建议您使用准备好的语句
  • @Akintunde 当然,我很快就会学会这样做。感谢您的建议

标签: php mysql datetime


【解决方案1】:

向 MySQL 发送一个不带引号的文字 NULL。 MySQL 不知道你的 PHP 的 NULL 类型。

UPDATE tbl_dummy SET Id=3,dtp=NULL,Remark="update1"

【讨论】:

  • 是的,我在 phpmyadmin 中尝试过它可以工作。但是,如果我给 $Dtp = NULL; it is coming as "" 如果我给 $Dtp = "NULL";$Dtp = 'NULL'; 它会以 "NULL" 的形式出现。如何发布为 NULL
  • UPDATE语句的SQL如何生成?
  • 您可以在 PHP 中使用简单的 if 条件。如果值为 null,则运行上面的查询,如果不是,则使用值运行查询
  • @Naktibalda 你的意思是我如何得到那个声明。如果是这样,那么答案是我回应了插入查询并在那之后死去。这就是你要问的朋友吗?
  • 不,您使用某些函数或类来生成它。我想知道它是什么。
【解决方案2】:

如何创建一个timestamp类型的变量,将其设置为NULL,然后使用该变量设置update上的值:

nulltimestamp = null

strSql = "update {table name}, set {columnname}=nulltimestamp where {your limiting comdition}"

execute strsql

【讨论】:

    猜你喜欢
    • 2015-08-15
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    相关资源
    最近更新 更多