我是NodeJS / Mysql的新手。我有一个字符串数组,我想存储在表的不同列中。
没有。列数= 5,数组大小= 5,例如[val1,val2 ...]
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
//Insert a record in the "pooltable" table:
var sql = "INSERT INTO pooltable (`t1`, `t2`, `t3`, `t4`, `t5`) VALUES (array)";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});
con.end();
});
问题是我无法将数组拆分为5个不同的值,如php implode
function。
答案 0 :(得分:0)
动态试试这个
var arr=JSON.stringify(array).substr(1).slice(0, -1);
var sql = 'INSERT INTO pooltable (`t1`, `t2`, `t3`, `t4`, `t5`) VALUES ("'+arr+'")';
答案 1 :(得分:0)
你相信你的用户输入吗?你在清理数据吗?
对于Node Mysql,为什么不使用占位符并将数组作为参数传递?
e.g
con.query("INSERT INTO pooltable (`t1`, `t2`, `t3`, `t4`, `t5`) VALUES (?,?,?,?,?)", arr, (err,results,fields) => {
if(err) {return //or do something }
// do something else
})
您可以在文档https://github.com/mysqljs/mysql#escaping-query-values
中找到更多信息