Igo*_* Q. 1 javascript sqlite safari web-sql cordova
这是有问题的代码.我一直在努力工作.
问题是,回调中的变量结果中没有任何行.但这仅存在于Safari中.Chrome运作完美.
Safari和Chrome上的数据库在数据库中显示正确的值.
结果变量中有一个有趣的属性:
SQLResultSet
insertId: Error: InvalidAccessError: DOM Exception 15
Run Code Online (Sandbox Code Playgroud)
但是行数组不存在.
db.transaction(function (tx) {
tx.executeSql("INSERT INTO QUIZZES (id,name,completed,icon) VALUES (coalesce((SELECT max(id) FROM QUIZZES),0)+1,?,0,?)", [json.name,json.icon],
function (tx, result) {
console.log('Inserted Quiz. Selecting Quiz');
tx.executeSql("SELECT * FROM QUIZZES ", [],
function (tx, result) {
console.log(result);
var quizid = result.rows[0].id;
console.log(quizid);
},
errorCB);
});
},
errorCB);
Run Code Online (Sandbox Code Playgroud)
我试过的是将我的代码从一个事务重新处理到通过db.transaction(...在回调中的多个单独的DB调用.
我还尝试重写查询本身,或编写将返回正确的查询结果100%的时间.然而,无处可去.
提前谢谢你的帮助
问题是Chrome在构建代码方面要宽松得多.
应该从查询中选择结果:via
results.rows.item(0).id;
Run Code Online (Sandbox Code Playgroud)
而不是
result.rows[0].id;
Run Code Online (Sandbox Code Playgroud)
注意这个项目.
这解决了我的问题.
| 归档时间: |
|
| 查看次数: |
748 次 |
| 最近记录: |