我第一次嘗試更新記錄中的字段,但是,當它使用變量指定行時,它不保存更新。在行中的sqlite更新字段不能識別行ID的變量
問題背景 - 當用戶點擊圖片時,調用checkDone()函數,傳遞行號(i)。然後,我將一個全局變量(glbID)設置到行nbr(i),並調用updateDB函數來更新指定行的狀態字段。我從來沒有收到錯誤,但是,注意到該字段沒有更新。當我對行ID進行硬編碼時,它保存了更新。但是,使用glbID var以及另一個strID來查看它是否是格式類型問題,無法解決問題。已經嘗試了幾個其他的變化無濟於事。
欣賞任何人對此的幫助。我正在用Android模擬器進行測試,讓我知道是否有其他信息有助於分析。
function checkDone(i) {
var db = window.openDatabase("Database", "1.0", "GTKdb", 200000);
glbID = i //SET global variable to row nbr
document.getElementsByTagName("img")[i].src = "img/checkbox_checked.png";
db.transaction(updateDB, errorCB);
}
function updateDB(u) {
var strDone = "DONE"
var strID = "" + glbID; //SET new variable to glbID, converting to string to see if format type issue
u.executeSql('UPDATE USER set status = ? where id = ?', [strDone,"2"], successCB, errorCB); //THIS WORKS WHEN ID value hardcoded
//u.executeSql('UPDATE USER set status = ? where id = ?', [strDone,glbID], successCB, errorCB); //NO UPDATE using var glbID
//u.executeSql('UPDATE USER set status = ? where id = ?', strDone,strID], successCB, errorCB); //NO UPDATE using var strID
alert('AFTER UPDATE Status= '+status); //No value for status appears
}
ID字段是字符串字段嗎? Thena你有引號圍繞數字:更新USER設置狀態='DONE'其中id ='2'。或者是id字段是一個自動增量字段? – josef
當我設置輸入字段時,將類型設置爲數字。不知道之後是否改變,或者如何檢查它是如何存儲在數據庫中的。我是一個初學者。 – tcougs
我應該澄清,當我在更新聲明中使用引號「2」硬編碼id值時,它工作正常。但是,問題是我需要這個與變量一起工作,因爲行ID將根據用戶點擊不同的行而有所不同... – tcougs