0
我有一個非常簡單的數據庫,有兩個表,一個用於存儲用戶的身份驗證(用戶名和密碼),一個用於存儲首選項。目前,當我的應用初始化時,它首先檢查設置,然後驗證。但我想一次抓住它。應用程序的設計方式是,每個表中只有1條記錄,所以我在查詢中不使用WHERE子句。sqlite/websql:單獨的查詢產生不同的結果比加入查詢
問題是,當我單獨進行查詢時,他們會給出與加入他們不同的結果。
請考慮這種情況:用戶登錄,設置一些設置,然後註銷。在可能的應用程序這會導致驗證表被清除,但設置保持不變。
登出查詢(只是清除AUTH表)
db.transaction(function(tx) {
tx.executeSql('DELETE FROM userdata');
}, errorDB);
但是這個輸出 「找到0行」:
db.transaction(function(tx) {
tx.executeSql('SELECT USERDATA.*, PREFS.* FROM USERDATA, PREFS', [], function (tx, results) {
var len = results.rows.length;
console.log(len + " rows found.");
for (var i=0; i<len; i++){
console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data = " + results.rows.item(i));
}
}, errorDB);
}, errorDB);
而這個輸出行:
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM PREFS', [], function (tx, results) {
var len = results.rows.length;
console.log(len + " rows found.");
for (var i=0; i<len; i++){
console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data = " + results.rows.item(i));
}
}, errorDB);
}, errorDB);
即使沒有auth,連接查詢也不應該找到prefs數據?這裏發生了什麼?