【发布时间】:2014-08-23 23:41:13
【问题描述】:
我正在尝试使用node-mysql module 在插入语句中使用 MySQL 函数“now()”:
var insert = {
username: 'foo',
date_joined: 'now()',
};
connection.query('INSERT INTO users SET ?', [insert],function(err, result){ ... });
正如我所料,这给了我一个错误 Error: ER_TRUNCATED_WRONG_VALUE: Incorrect datetime value: 'now()' for column 'date_joined',因为它将 now() 函数转义为字符串,而不是让 MySQL 将其解析为我想要的函数。
实际上,我的插入语句和查询要复杂得多,因此我想利用 node-mysql 提供的 escaping query values 快捷方式,而不是手动构建我的查询。
如何告诉 node-mysql 不要转义 now() 函数?
【问题讨论】:
-
date_joined的可能值是多少?如果不是常量值而是函数调用,为什么还要在这里使用占位符? -
date_joined 属于
datetime类型。我不需要为我猜想的函数使用占位符,但这会使它更加更具可读性。 -
更具可读性(可争论)和破碎的 :-D 所以 - 它实际上可以是这里的字符串文字还是总是
now()?如果是这样 - 为什么不按原样将其放入查询中? -
我想这是一个公平的观点,尽管我确实喜欢我的所有插入数据在一个对象中清晰明了的想法,而不是分散在各处。我授予你“最后手段”的身份。
-
我能问一下为什么这被否决了吗?如果我不清楚,我很乐意澄清。
标签: mysql node.js express node-mysql