处理SQL时出错:0 PhoneGap SQL

时间:2012-12-20 14:45:44

标签: javascript sql html5 cordova

我试着从这里复制代码: http://luthfihariz.wordpress.com/2011/10/23/android-sqlite-phonegap-jquerymobile/ 为了成功获得一个样本,我正在努力学习这一点。 我在pastebin上有一个完整的index.html链接。

请纠正我,并帮助我找到这个错误。

Link to Pastebin here

2 个答案:

答案 0 :(得分:5)

我没有很多时间,而且很快就会结束圣诞节:)但是.. :)我确实用你的代码作为首发来写了一个工作示例。

使用Cordova 2.2.0版 使用PhoneGap进行编译 我在Android设备上测试过它 我确实在这里和那里改变了一些东西,但我使用代码frome here作为参考。

document.addEventListener("deviceready", onDeviceReady, false);

var db = "";

function populateDB(tx) {
    tx.executeSql('DROP TABLE IF EXISTS SoccerPlayer');
    tx.executeSql('CREATE TABLE IF NOT EXISTS SoccerPlayer (Name TEXT NOT NULL, Club TEXT NOT NULL)');
    tx.executeSql('INSERT INTO SoccerPlayer(Name,Club) VALUES ("Alexandre Pato", "AC Milan")');
    tx.executeSql('INSERT INTO SoccerPlayer(Name,Club) VALUES ("Van Persie", "Arsenal")');
}

function queryDB(tx) {
    tx.executeSql('SELECT * FROM SoccerPlayer', [], querySuccess, errorCB);
}


function querySuccess(tx,result){
        var playerlist = document.getElementById("SoccerPlayerList");
        var players = "";
        alert("The show is on");
        var len = result.rows.length;
        for (var i=0; i<len; i++){
            alert(result.rows.item(i).Name + result.rows.item(i).Club);
            players = players + '<li><a href="#"><p class="record">'+result.rows.item(i).Name+'</p><p class="small">Club '+result.rows.item(i).Club+'</p></a></li>';
        }   

        playerlist.innerHTML = players;
        $("#SoccerPlayerList").listview("refresh");
}


function errorCB(err) {
    alert("Error processing SQL: "+err.code);
}


function successCB() {
    db.transaction(queryDB, errorCB);
}


function onDeviceReady() {
    db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
    db.transaction(populateDB, errorCB, successCB);
}

答案 1 :(得分:-3)

tx.executeSql('INSERT INTO SoccerPlayer(Name,Club) VALUES ("Van Persie", "Arsenal")');

需要更改为

tx.executeSql('INSERT INTO SoccerPlayer(Name,Club) VALUES ("Van Persie", "Manchester United")');