我正在开发一款需要存储一些数据的iOS上的phonegap应用。我正在使用phonegap文档中提供的存储API,我相信正在插入数据。但是当我尝试使用SELECT语句检索数据时,我没有在警告框中获得任何输出。
正在显示“loading2”警报但在此之后我没有得到任何输出。
我的代码如下(从phonegap wiki中选取):
// load the currently selected icons
function loadCelebs(mydb)
{
try
{
alert("loading2");
mydb.transaction(
function(transaction)
{
transaction.executeSql('SELECT * FROM celebs ORDER BY name', [], celebsDataHandler(transaction,results));
});
}
catch(e)
{
alert(e.message);
}
}
// callback function to retrieve the data from the prefs table
function celebsDataHandler(tx, results)
{
// Handle the results
alert(results);
}
答案 0 :(得分:0)
尝试将其更改为:
mydb.transaction(
function(transaction)
{
transaction.executeSql('SELECT * FROM celebs ORDER BY name', [], celebsDataHandler);
});
您不希望在transaction()调用中使用(tx,results)部分。您只传递对回调处理程序的引用,以便它可以在完成后运行它。通过添加(tx,results)您正在执行并传入结果。
另外,请考虑传入错误处理程序。如果您知道错误是什么,它可以使调试更容易。
function errorCB(err) {
alert("Error processing SQL: "+err.code);
}
mydb.transaction(
function(transaction)
{
transaction.executeSql('SELECT * FROM celebs ORDER BY name', errorCB, celebsDataHandler);
}
);