无法从phonegap应用程序中的Web sql数据库中检索数据

时间:2011-09-26 12:40:58

标签: javascript html5 cordova web-sql

我正在开发一款需要存储一些数据的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);

    }

1 个答案:

答案 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);
    }
);