node-sqlite3无法绑定run方法中的参数

时间:2014-03-03 11:47:33

标签: node.js sqlite

我尝试执行下一个代码(简化):

var placeholders = {
    $id: 1,
    $value: 'some value',
};

var sql = "INSERT INTO table(id,value) VALUES($id, $value)";
var st = db.prepare(sql);

st.run(sql, placeholders, function(err){
    if(err){
        console.log(err);
        //callback(false);
    }else{
        console.log(this);
        //callback(true);
    }
});

在结果查询中,占位符替换为null。

{ [Error: SQLITE_CONSTRAINT: NOT NULL constraint failed: table.value] errno: 19,
 code: 'SQLITE_CONSTRAINT' }

我做错了什么?

节点0.10.24  sqlite3 2.2.0  Windows 8 32位

1 个答案:

答案 0 :(得分:1)

声明#stall([param,...],[callback])

您无法在run方法中将sql语句作为其参数传递。无法满足列约束'NOT NULL',因为您的params以错误的方式解析。

var placeholders = {
    $id: 1,
    $value: 'some value'
};

var sql = "INSERT INTO test (id,value) VALUES($id, $value)";
var st = db.prepare(sql);

st.run(placeholders, function(err) {
    if(err) {
        console.log(err);
        //callback(false);
    } else {
        console.log(this);
    }
});