2012-04-10 132 views
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> 
+0

我更新以添加代码块。要做到这一点,请选择您的区块,然后单击工具栏中的代码区块按钮(它就像是“{}”) – 2012-04-10 23:33:56

+4

您正在使用Dreamweaver。这是你的第一个问题。 – Confluence 2012-04-10 23:34:31

+0

你可以显示你的IS NULL的应用程序吗? – Starx 2012-04-10 23:35:57

回答

1

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

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

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

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