Как сказано в руководстве на htm5sql.com , есть несколько способов дать html5sql.js SQL-операторы, и ваша ошибка вызвана смешением нескольких разных способов.
Нравитсяxdazz упомянул в своем ответе, что первый аргумент html5sql.process может быть просто строкой с одним или несколькими SQL-операторами.Вы также можете передать массив строк операторов SQL или объектов операторов SQL.Преимущество использования объектов операторов SQL заключается в том, что вы можете определить массив данных и указать отдельные обратные вызовы успеха.
Таким образом, по сути вы можете сделать это:
$(function() {
html5sql.openDatabase("demo", "Demo Database", 5 * 1024 * 1024);
html5sql.process(
[
"DROP TABLE IF EXISTS speedtest;",
"CREATE TABLE speedtest (id INTEGER PRIMARY KEY, label TEXT);",
{
sql: "INSERT INTO speedtest VALUES (?, ?);",
data: [1,'1'],
success: function(transaction, results) {
console.info('Success Inserting First Record');
}
},
{
sql: "INSERT INTO speedtest VALUES (?, ?);",
data: [2,'2'],
success: function(transaction, results) {
console.info('Success Inserting Second Record');
}
}
],
function() {
console.log("Final Sucess Callback");
},
function(error, failingQuery) {
console.error("Error: " + error.message);
}
);
});
Демонстрацию этого можно найти в этом jsfiddle