Javascript 我无法进行插入忽略查询
如何使用knex进行插入忽略查询 我试过:Javascript 我无法进行插入忽略查询,javascript,knex.js,Javascript,Knex.js,如何使用knex进行插入忽略查询 我试过: knex.raw(knex('music').insert({title: service[i].Title, author: service[i].PrimaryArtistName, album: service[i].TypeAlbumName, lyrics: service[i].Lyrics}).toString().replace("insert", 'insert ignore')); 但它不起作用 更新: 如果我加上 .then(f
knex.raw(knex('music').insert({title: service[i].Title, author: service[i].PrimaryArtistName, album: service[i].TypeAlbumName, lyrics: service[i].Lyrics}).toString().replace("insert", 'insert ignore'));
但它不起作用
更新:
如果我加上
.then(function (res) {
console.log("res", res);// or another code
});
但是它的方法正确吗?在knex API中有一个正式支持这一点的请求正在进行中。我希望它可以准备到下一个版本 您永远不应该使用.toString来构建查询,因为它可能很容易为您的代码留下sql注入漏洞,尤其是在插入时 一开始它什么都没做,因为您从未触发过查询 目前,您可以通过以下方式实现相同的更安全的方法:
const query = knex('music')
.insert({
title: service[i].Title,
author: service[i].PrimaryArtistName,
album: service[i].TypeAlbumName,
lyrics: service[i].Lyrics
}).toSQL();
const sql = query.sql.replace("insert", 'insert ignore');
knex.raw(sql, query.bindings).then(() => console.log('insert is ready'));