2013-10-08 91 views
2

我用PhoneGap刪除本地存儲數據庫中的一行非常麻煩。PhoneGap本地存儲sql刪除語句

當我調用函數deleterow()時,會觸發一個錯誤,指出「undefined」。很明顯,errorCB()函數被調用。行aint已刪除。

我所做的是我通過這樣的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 

我覺得很難相信,刪除AINT支持。

我是對的,還是我錯過了什麼?

我找到了一個解決方案:

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

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

} 
+0

感謝您在我的標題中進行編輯,我拼寫非常糟糕:-) – Daniel

+0

您能否詳細說明一下,是什麼給了您一個錯誤「undefined」?有什麼要跟蹤的? – zvona

+0

問題已修改。 – Daniel

回答

2

這裏的問題是,你正在使用刪除功能語法,試試這個:

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

希望有所幫助。

+0

你的建議看起來像我的原始問題激動人心。我有兩個不同的。你改變了什麼? – Daniel

+0

executeSql函數調用的函數語法 – SHANK

+0

已關閉問題並接受答案。我終於有時間仔細檢查了,謝謝你的回答:-) – Daniel