2

使用 PhoneGap 删除本地存储数据库中的一行时遇到了很大的麻烦。

当我调用函数 deleterow() 时,它会触发一条错误消息“未定义”。显然 errorCB() 函数被调用。该行未删除。

我所做的是通过这样的 HTML 锚标记调用我的函数。

<a onclick="deleterow('10')">Delete row</a>


function deleterow(id) {
    db.transaction(function(ctx) {
        ctx.executeSql('DELETE FROM <table> WHERE id=?', [id], successCB, errorCB); 
    });
}

OR    

function deleterow(id) {
    db.transaction(function(ctx) {
        ctx.executeSql('DELETE FROM <table> WHERE id='+id+'', [], successCB, errorCB);  
    });
}

function errorCB(err) {
    alert("Error processing SQL: "+err.code);
}

function successCB() {
    alert("Row deleted");
}

我有以下工作示例:

INSERT
SELECT
UPDATE
CREATE

我很难相信删除不支持。

我是对的,还是我错过了什么?

我找到了一个解决方案:

function delete(id) {
    db.transaction(function(ctx) {

    ctx.executeSql('DELETE FROM manyrecipes WHERE rowid=?', [id], delete_success, errorCB); 
    });

}
4

1 回答 1

2

这里的问题在于您用于删除的函数语法,试试这个:

function deleterow(id) {
db.transaction(function(ctx) {
    ctx.executeSql('DELETE FROM <table> WHERE id='+id+'', errorCB);  
    });
}

希望有帮助。

于 2013-10-08T13:09:53.683 回答