Я новичок в 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
функция.
для динамического попробуйте это
var arr=JSON.stringify(array).substr(1).slice(0, -1);
var sql = 'INSERT INTO pooltable (`t1`, `t2`, `t3`, `t4`, `t5`) VALUES ("'+arr+'")';
Вы доверяете своему вводу пользователя? Вы дезинфицируете данные?
Для Node Mysql, почему бы вам не использовать заполнители и просто передать массив в качестве параметров?
например
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