【发布时间】:2016-06-07 21:14:08
【问题描述】:
我想在每个新用户注册时使用CURRENT_TIMESTAMPINSERT 当前时间戳。列号等于VALUES 中的参数数量。然而我得到INSERT has more target columns than expressions。使用node-postgres npm 模块作为控制器。
//Just 3 parameters, timestamp is hardcoded in the query
exports.create = function (username, email, password) {
DB.connect(connection, function (err, client, done) {
var query = client.query(
//4 columns
"INSERT INTO users (username, email, userpass, datecreated) VALUES" +
//4 parameters
"(" + "'" + username + "'" + "," + "'" + email + "'" + "," + "'" + password + "'" + "'CURRENT_TIMESTAMP')");
query.on('error', function (error) {
console.log("query returned an " + error);
});
query.on('row', function (row, result) {
result.addRow(row);
});
});
};
【问题讨论】:
-
在我看来,您正在传递 Current_Timestamp 的字符串值;不调用函数 current_timestamp。也许你需要去除它周围的抽动。看看here 怎么没有抽动症?
-
删除它周围的单引号返回
syntax error at or near CURRENT_TIMESTAMP -
我会将整个字符串写入一个变量,然后显示变量的结果。我的猜测是你在其他地方有语法错误......
-
不要使用此代码。它非常不安全,并且也会导致一些用户输入难以调试数据库错误。阅读有关 SQL 注入的信息。
标签: javascript sql node.js postgresql