2012-04-10 185 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