这是我的问题......我在这里有一些代码:
db.transaction(function(transaction) {
var optgroup = String($('#myselect').val());
var optarray = optgroup.split(',');
for(var i=0; i<optarray.length; i++){
transaction.executeSql('INSERT INTO table1(colum1)\
VALUES(?)',[optarray[i]],
nullHandler);
}
});
这本身并不是问题,它可以按预期工作。数组中的每个值都存储在表的不同行中。我的问题是,如果用户从myselect中选择不同的值,我想更新表。
如果我显然执行INSERT OR REPLACE,在遍历数组时,它只会将最后一个值放入一行。有没有办法删除表中的所有内容,然后存储新的值?我基本上想要一个系统,我可以根据用户做的新输入摆脱用户先前的行并放入新的行。
我真的很想知道如何做到这一点。
答案 0 :(得分:0)
意识到它实际上非常简单,我想我只是忘记了DELETE查询&gt;。&lt;
db.transaction(function(transaction) {
transaction.executeSql('DELETE FROM table1 WHERE Id > 0\
',
nullHandler);
});
db.transaction(function(transaction) {
var optgroup = String($('#myselect').val());
var optarray = optgroup.split(',');
for(var i=0; i<optarray.length; i++){
transaction.executeSql('INSERT INTO table1(colum1)\
VALUES(?)',[optarray[i]],
nullHandler);
}
});
因此,在插入新值之前,它首先删除表中的所有内容。这很好。