簡體   English   中英

從WebSQL Javascript命令返回變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM