【问题标题】:Only update fields that are not null只更新不为空的字段
【发布时间】:2012-04-10 23:31:13
【问题描述】:

我一直试图弄清楚如何仅在字段不为空时更新字段(否则 NULL 会覆盖未更改的字段)。字段不能为空也没关系。

我已经尝试过 COALESCE 和 ISNULL,但是我不能以正确的方式使用它们,因为我不习惯 Dreamweaver 编码。代码如下:

<i>if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "catalogue")) {
  $updateSQL = sprintf("UPDATE catalogue SET catbox1=%s, catbox2=%s, catbox3=%s, catbox4=%s, catbox5=%s, catbox6=%s WHERE id=%s",
                       GetSQLValueString($_POST['catbox1'], "text"),
                       GetSQLValueString($_POST['catbox2'], "text"),
                       GetSQLValueString($_POST['catbox3'], "text"),
                       GetSQLValueString($_POST['catbox4'], "text"),
                       GetSQLValueString($_POST['catbox5'], "text"),
                       GetSQLValueString($_POST['catbox6'], "text"),
                       GetSQLValueString($_POST['id'], "int"));</i>

【问题讨论】:

  • 我更新以添加代码块。为此,请选择您的块并单击工具栏中的代码块按钮(它看起来像 {}
  • 您正在使用 Dreamweaver。这是你的第一个问题。
  • 能否展示一下你的IS NULL的应用?
  • 我用过 SET catbox1=ISNULL(%s), catbox2=ISNULL(%s)...

标签: php mysql null dreamweaver


【解决方案1】:

您的代码中很少有错误,但这些可能是拼写错误。

  1. 没有 PHP 包装器:您已将 mysqlcode 包含在部分中
  2. 使用IS NOT NULL 而不是ISNULL

您尝试做的基本方法是使用这样的查询

UPDATE `tablename` SET `fieldName` = 'value' WHERE `fieldName` IS NOT NULL

【讨论】:

    猜你喜欢
    • 2021-12-10
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2021-06-21
    • 2020-05-01
    相关资源
    最近更新 更多