2017-09-07 20 views
1

我試圖發送空使用我的MySQL數據庫的node.js空的值發送到MySQL數據庫:不能使用節點

con.query("INSERT INTO Routes (routeTrigger) VALUES (" + null + ")", {title: 'test'}, function(err, result) { 
           if (err) throw err; 
}); 

但在數據庫中查找時,更新的價值讀取「null」。數據庫null應該是「NULL」。如果我發送大寫NULL,那甚至不起作用(在節點中)。如果我發送'NULL',它會發送字符串「NULL」,而不是數據庫null。

回答

0

如果要分配NULL值值在SQL表中,可以有不同的想法。

不是指定NULL的,你可以調整字段(列),從而使默認值(如果沒有指定值)是:NULL

現在,當您插入新行時,只需不會爲該字段分配任何值。


例子:

假設該表的結構如下所示:

MyTable的

ID:自動遞增; ...

:文本

網址:文本;默認= NULL

然後,你可以這樣做:

INSERT INTO Mytable (name) VALUES ("Joe");

當你忽略URL信息,它被設置爲NULL

+0

謝謝您的回覆。我意識到這一點。但事實的真相是,查詢有時會有或多或少的數據發送(並因此分配)。因此,我必須確保查詢處理所有最終變量,因爲它們來自用戶輸入。 – djokerndthief

+0

是的,我明白,也許你可以改變你的問題的**標題爲[類似這樣的東西](https://stackoverflow.com/questions/7691184/how-do-i-skip-a-column-entry -on-嵌件時-A - 值是空白-在-SQL)。但是你知道,通常,這是你的一面(在代碼中)導致這個問題的一個簡單的錯誤。試着'console.log(query)'看看你的查詢是什麼樣的。 – Bird

0

Javascript null不是SQL空值。你想(在oyur情況下,使用原始的sql字符串)一個字符串:

con.query("INSERT INTO Routes (routeTrigger) VALUES (null)", {title: 'test'}, function(err, result) { 
           if (err) throw err; 
}); 

但請注意,這將創建一個完全爲空的行。這是可能的,但它不太可能是你想要的。

你究竟在做什麼?

+0

感謝您的回覆,但不幸的是這並沒有太大的幫助。看到我對下面答案的評論,我想我想得到的更清楚。 – djokerndthief