这不是空只更新领域(Only update fields that are not null)

2019-10-16 14:24发布

我一直在试图找出如何更新的领域,只有当他们不为空(否则为NULL覆盖不变字段)。 不要紧,该字段不能为空。

我曾经尝试都聚结和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>

Answer 1:

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

  1. NO PHP包装:你必须包括与部分你mysqlcode
  2. 使用IS NOT NULL ,而不是ISNULL

什么你正在尝试做的基本方法是使用这样的查询

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


文章来源: Only update fields that are not null