2014-03-31 78 views
0

我在这里有一个破损的函数代码,它将从SQLite数据库中检索特定的项目,我的问题是我想将检索的项目的值传递给displayContent,但我不知道如何这样做,我的代码只用于检索单行而不是多行,因为SecondColumn的内容不相同。我现在无能为力。从SQLite数据库检索一个特定的项目

这里是我的代码:

function (content) 
{ 
    var displayContent; 
    db.transaction(function (tx) { tx.executeSql('SELECT FirstColumn FROM SampleTable WHERE SecondColumn = ?',[content]); }); 
} 

任何额外的想法将欣然接受,我坚持这一点。

回答

1

tx.executeSql方法需要一个回调,然后您可以处理查询的结果。看看这里,你可以看到一个例子:http://www.tutorialspoint.com/html5/html5_web_sql.htm

正如你可以看到有,他们做到以下几点:

db.transaction(function (tx) { 
    tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) { 
    var len = results.rows.length, i; 
    msg = "<p>Found rows: " + len + "</p>"; 
    document.querySelector('#status').innerHTML += msg; 
    for (i = 0; i < len; i++){ 
    msg = "<p><b>" + results.rows.item(i).log + "</b></p>"; 
    document.querySelector('#status').innerHTML += msg; 
    } 
}, null); 
}); 

在你的情况,你可能会做这样的事:

function (content) 
{ 
    db.transaction(function (tx) { 
     tx.executeSql('SELECT FirstColumn FROM SampleTable WHERE SecondColumn = ?',[content], function (tx, results) { 
      if (results.rows.length) { 
       var displayContent = results.rows.item(0).FirstColumn; 
       document.querySelector('...').innerHTML = ...; // Display something 
      } 
     }); 
    }); 
} 

如果你想尝试等待查询,看看这个前面的Stackoverflow问题:HTML5 WebSQL: how to know when a db transaction finishes?

+0

非常感谢,现在一切都很清楚。我只是在我的应用程序中测试它,它的工作原理。 –