tom*_*ole 2 javascript sqlite insert
使用 javascript 对象作为 sqlite3 插入的值的最简单的解决方案是什么?下面的代码不起作用。
const values = {
name: 'John',
age: 34,
language: 'english'
};
db.run('INSERT INTO tablename VALUES (?)', values, (err) => {
if (err) {
console.log(err);
} else {
console.log('success');
}
});
Run Code Online (Sandbox Code Playgroud)
首先你需要正确编写SQL。要插入到列中name, age, language,您需要像这样编写 SQL:
INSERT INTO tablename (name, age, language) VALUES (?, ?, ?)
Run Code Online (Sandbox Code Playgroud)
并将 3 列的值作为参数传递。
db.run('INSERT INTO tablename (name, age, language) VALUES (?, ?, ?)', [values['name'], values['age'], values['language']]), (err) => { ... });
Run Code Online (Sandbox Code Playgroud)
或者,如果 JavaScript 对象中的属性名称直接对应于列名称,那么您可以动态生成正确的 SQL 字符串以获得更大的灵活性:
const cols = Object.keys(values).join(", ");
const placeholders = Object.keys(values).fill('?').join(", ");
db.run('INSERT INTO tablename (' + cols + ') VALUES (' + placeholders + ')', Object.values(values)), (err) => { ... });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5253 次 |
| 最近记录: |