从SQLite数据库中检索特定项

时间:2014-03-31 19:06:26

标签: javascript android sqlite jquery-mobile

我这里有一个破碎的功能代码,可以从SQLite数据库中检索一个特定的项目,我的问题是我想将检索到的项目的值传递给displayContent,但我不知道怎么做,我的代码只是设计用于检索单行而不是多行,因为SecondColumn的内容不相同。我现在很无能为力。

这是我的代码:

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

任何其他想法都会很乐意接受,我对此感到困惑。

1 个答案:

答案 0 :(得分: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?