我尝试执行下一个代码(简化):
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位
答案 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);
}
});