首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入data PhoneGap SQLTransaction

插入data PhoneGap SQLTransaction
EN

Stack Overflow用户
提问于 2013-02-06 21:52:36
回答 2查看 2.2K关注 0票数 0

当我尝试在phonegap中插入数据sql时

代码语言:javascript
复制
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*/

结果是:

代码语言:javascript
复制
id         msj 
///////
 1   -     a
 2   -     d
 3   -     d 
 4   -     d

我怎么才能修复它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-06 23:13:45

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

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

票数 1
EN

Stack Overflow用户

发布于 2013-02-07 01:48:16

谢谢SHANK!!

已解决

代码语言:javascript
复制
var var1="a,b,c,d";

var vars=var1.split();

/*open for*/

insert(vars[i]);

/*close for*/

function insert(vars){

//openconection

  var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);      

  db.transaction(
  function(tx) {        
    tx.executeSql('INSERT INTO MENSAJE ( msj) VALUES ("' + vars+ '"');
  }, errorCB);

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14730761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档