我这里有一个破碎的功能代码,可以从SQLite数据库中检索一个特定的项目,我的问题是我想将检索到的项目的值传递给displayContent,但我不知道怎么做,我的代码只是设计用于检索单行而不是多行,因为SecondColumn的内容不相同。我现在很无能为力。
这是我的代码:
function ( content )
{
var displayContent;
db.transaction(function (tx) { tx.executeSql('SELECT FirstColumn FROM SampleTable WHERE SecondColumn = ?',[content]); });
}
任何其他想法都会很乐意接受,我对此感到困惑。
答案 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?