2017-09-07 43 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