![](/img/trans.png)
[英]Return multiple rows as an array from a WebSQL databse using javaScript
[英]Inserting multiple records into a webSQL table using single query, data from array of objects
目前,我正在从服务器提取JSON并将其放入webSQL数据库后,循环执行INSERT INTO查询。
尽管这可行,但我正在为每条记录执行一个SQL事务,但这似乎效率很低,尤其是在移动设备上。
假设我有一个与每一行所需的值相对应的对象数组,如何在没有循环的情况下做到这一点? 还是简单地循环遍历会更好?
大致来说,我有以下格式的数组:
[{"Timestamp": 323343553,
"ID": 1,
"Value1": "string"
"Value2": 322}, ... more objects
]
正如Cl所言,您可以按以下方式将insert SQL命令循环到一个事务中。
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT,name)');
});
var userArray = [{"name": "bob"}, { "name": "lee"}];
db.transaction(function (tx) {
for (var i = 0; i <userArray.length; i++)
{
tx.executeSql("insert into user(name) values(?)", [userArray[i].name],successCallBack,errorCallBack);
}
});
function successCallBack(){
console.log("inserted corrrectly !!");
}
function errorCallBack(tx,error){
if (query.indexOf('insert into') === -1)
alert("Error : " + error.message + " in " + query);
console.log(error.message + "in" + tx);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.