1

我一直在试图弄清楚只有在字段不为空时如何更新字段(否则 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>
4

1 回答 1

1

您的代码中几乎没有错误,但这些可能是拼写错误。

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

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

UPDATE `tablename` SET `fieldName` = 'value' WHERE `fieldName` IS NOT NULL
于 2012-04-10T23:33:42.707 回答