仅更新非空字段

时间:2012-04-10 23:31:13

标签: php mysql null dreamweaver

我一直在试图弄清楚如果它们不为空来更新字段(否则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>

1 个答案:

答案 0 :(得分:1)

你的代码中有一些错误,但这些可能是错别字。

  1. 没有PHP包装器:您已将mysqlcode包含在部分
  2. 使用IS NOT NULL代替ISNULL
  3. 您尝试做的基本方法是使用像这样的查询

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