我在Google上搜索如何将1
或0
存储为值。我选择了BIT(1)
数据类型:
然后,对于用户身份验证,我将该值存储在TEMPUSER
内的临时nodejs
对象中:( gender
我的users
表中的列)
db.query('SELECT * from users WHERE id = ' + db.escape(userID) + ' AND password = ' + db.escape(userPassword) + '', function(err, results) {
TEMPUSER = {
gender: results[0].gender
}
});
现在,当我使用:/ / p>来控制.log TEMPUSER
时
console.log('Gender Data: ' +TEMPUSER.gender);
显示:
多么奇怪?不应该显示1
或0
?
对于此特定用户,性别行值也在mysql中设置为1
:
答案 0 :(得分:4)
我怀疑你是否
console.log(typeof TEMPUSER.gender);
...您发现它object
,因为the plugin you're using将BIT
列映射到NodeJS Buffer
个对象。因此,您只需输入一个条目Buffer
。 +
语句中的console.log
会将其转换为包含一个字符的字符串,字符代码为U + 0001。在我的Windows系统上,如果我这样做:
console.log("\u0001");
......我也笑脸。
相反,请使用缓冲区:
TEMPUSER = {
gender: results[0].gender[0]
}
我查看查询返回NULL
时得到的内容;可能是一个空缓冲区(上面会给你undefined
),可能是null
(上面会给你一个错误)。
答案 1 :(得分:0)
这真的很有趣,应该保存那种尴尬的行为。
关于系列说明:
首先,您应该使用console.log(result);
[[1,"a",false]
,[1,"a",true]
,[1,"b",false]
,[1,"b",true]
,[1,"c",false]
,[1,"c",true]
,[2,"a",false]
,[2,"a",true]
,[2,"b",false]
,[2,"b",true]
,[2,"c",false]
,[2,"c",true]
,[3,"a",false]
,[3,"a",true]
,[3,"b",false]
,[3,"b",true]
,[3,"c",false]
,[3,"c",true]]
数据类型保存布尔值。 (可选,限制为一个字符。)
第二,在决定性别的数据类型时,快速搜索结果如下:
Storing sex (gender) in database
祝你好运!