[英]Return a variable from a WebSQL Javascript command
我正在嘗試使用Javascript查詢WebSQL數據庫,以返回單個最高數據行的'id'列的值。
db.transaction(function(tx) {
//
// PROBLEM AREA
// How to get the data into a variable?
//
var xyz = 0;
tx.executeSql('SELECT MAX(id) FROM WORKOUTS ORDER BY id DESC' [],function(tx, results) {
var xyz = results.row.id, i;
alert('Alert 2');
alert(xyz);
});
}, function(){
alert('success SELECTING!');
}); // End transaction
我相信查詢正在執行,因為我收到成功的SELECTING警報。 alert(xyz)
僅返回值nil。
如何將數據從SQL數據庫獲取到Javascript變量中?
謝謝!
編輯:以下建議的代碼更改導致ReferenceError:找不到變量:結果
function myTransaction(cb)
{
db.transaction(function(tx) {
tx.executeSql('SELECT MAX(id) FROM WORKOUTS ORDER BY id DESC', [], function(tx, results) {
cb(results); });
},function(){
alert('success SELECTING!');
}); // End transaction
}
myTransaction(function(results) { alert(results); });
注意事項:
您在executeSql參數列表中缺少逗號
tx.executeSql('SELECT MAX(id) FROM WORKOUTS ORDER BY id DESC', [],function(tx, results) {
不
tx.executeSql('SELECT MAX(id) FROM WORKOUTS ORDER BY id DESC' [],function(tx, results) {
結果對象包含rows
屬性,而不是row
。
所以你想用
results.rows.item(0)
不
results.row
transaction()
需要3個回調,第一個是在打開事務時將執行的回調。 第二個是錯誤回調,第三個是成功回調。 您正在使用錯誤回調,但將其視為成功回調。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.