Я использую SQLite с sql.js в своем проекте, и у меня возникли некоторые проблемы с моей реализацией.Похоже, запросы выполняются в базе данных дважды, потому что для операторов INSERT я получаю 2 записи в БД.
Как я это делаю, я создаю SQL, а затем передаю его этому методу (переменная opts содержит все данные, помещаемые в базу данных):
prepareStatementAndCompileResults(db, sql, opts){
const stmt = db.prepare(sql);
const result = stmt.getAsObject(opts);
var rows = [];
if(!this.isEmpty(result)){ // isEmpty is a simple method that checks for empty objects
rows.push(result);
}
while(stmt.step()) {
var row = stmt.getAsObject();
rows.push(row);
}
this.saveToFile(db);
stmt.free();
return rows;
},
Здесьпример SQL INSERT, который запускается дважды
INSERT OR IGNORE INTO tag_event (tag_id, event_id, unique_string)
VALUES (:tag_id,:event_id, :unique);
Вот как будет выглядеть переменная opts для этого запроса:
var opts = {
[':tag_id']: 1,
[':event_id']:1,
[':unique']: '1-1'
}