0

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

    }
4

1 回答 1

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);
    }
);
于 2011-09-26T14:25:40.337 回答