在Node.js中如何将JS数组作为行插入SQLite数据库
结论
不能直接将数组无处理拼入SQL语句插入,但你使用的sqlite3库原生支持将数组作为参数化查询的绑定值传入,可以直接用这个特性完成插入,不需要手动拆分数组元素。
正确插入代码
// 用?作为占位符,数量和表字段数、数组元素数完全对应 infoTable.run( `INSERT INTO infoTable (name, age, status, workPlace, intrest) VALUES (?, ?, ?, ?, ?)`, myArray, function(err) { if (err) { console.error('插入失败:', err.message) return } console.log('插入成功,对应行ID为', this.lastID) } )
注意事项
- 数组元素的顺序必须和SQL语句中字段的顺序完全对应,否则会出现字段值错位存储的问题
- 你当前数组里的
age是字符串类型的"16",SQLite会自动兼容转换为表定义的INTEGER类型存储,不过建议提前转为数字16更符合字段定义规范 - 不要直接将数组元素拼接入SQL字符串,参数化查询的方式可以避免SQL注入风险,也不需要你手动处理特殊字符转义问题
内容的提问来源于stack exchange,提问作者doc pinocchio
相关产品推荐
相关产品推荐

