插入数据PhoneGap SQLTransaction

时间:2013-02-06 13:52:36

标签: android cordova jquery-mobile

当我尝试在phonegap

中插入数据sql时
var var1="a,b,c,d";

var varsplit=var1.split();

/*open for*/

db.transaction( 
function(tx,varsplit[i]) {
   tx.executeSql('INSERT INTO msj (text) VALUES ("' + varsplit[i]+ '")');
}, errorCB);

/*close for*/

结果是:

id         msj 
///////
 1   -     a
 2   -     d
 3   -     d 
 4   -     d

我该如何解决?

1 个答案:

答案 0 :(得分:1)

tx.executeSql是一个非阻塞函数调用。一旦调用executeSql语句,for循环就不会等待控件返回。 因此,它会增加循环指针的值,因为在最后3次插入中你得到'd'。 当第二次执行executeSql语句时,循环已经完成,并且i的值被设置为最后一个元素。

您需要在executeSql的回调函数中执行下一次插入。其中一种可能的技术是使用递归。