我试图将一个值插入到websql数据库的现有行中,但是到目前为止我所尝试的所有内容似乎都没有运气。
表格创建:
function createDB(t) {
t.executeSql('CREATE TABLE IF NOT EXISTS WALKS (id integer primary key autoincrement, Distance TEXT, Duration TEXT, PathCoordinates TEXT, Images TEXT, WalkTitle Text, Description Text)');
}
点击按钮时会出现以下声明,但是我怀疑声明不正确,因为我没有错误?
var walkTitle = document.getElementById("walkTitle").value;
db.transaction(function(t) {
t.executeSql('Update WALKS SET WalkTitle=? WHERE id(SELECT MAX(id)', [walkTitle]);
});
答案 0 :(得分:0)
好吧,很多事情都可能出错,所以首先你应该向executeSQL
添加成功/错误回调,这样你就可以解决问题了:
t.executeSql('<sql>', [args], function (t, results) {
console.log('ok');
}, function(t, error) {
console.log(error: ' + error.message);
});
我的猜测是你的更新SQL错了,我认为应该更像:
Update WALKS SET WalkTitle=? WHERE id=(SELECT MAX(id) from WALKS)
另一件事是,如果表中已经没有至少一行,那么您的代码将不会执行任何操作。或者walkTitle
可以为null / undefined。或者其他数千个原因,但错误回调(和error.message)应该指向正确的方向。