phoneGap Android-一次填充数据库”;处理SQL时出错:1“;

phoneGap Android-一次填充数据库”;处理SQL时出错:1“;,android,database,cordova,populate,Android,Database,Cordova,Populate,如果数据库存在,我试图避免填充数据库,但是当我试图取消代码中的这一行时,我得到了“错误处理SQL:1” 这是我的全部功能 function populateDB(tx) { tx.executeSql('DROP TABLE IF EXISTS DEMO'); tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, word TE

如果数据库存在,我试图避免填充数据库,但是当我试图取消代码中的这一行时,我得到了“错误处理SQL:1”

这是我的全部功能

 function populateDB(tx) {
        tx.executeSql('DROP TABLE IF EXISTS DEMO');
        tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, word TEXT NOT NULL');
        tx.executeSql('INSERT INTO DEMO (id, word) VALUES ("1", "Apple")');
        tx.executeSql('INSERT INTO DEMO (id, word) VALUES ("2", "Orange")');

    }

您的函数有一组问题,这些问题已在下面更正。现在应该可以了

    function populateDB(tx) {
        isTableExists(tx, "DEMO", function(status) {
            if (!status) {
                alert("table not exist, creating one");
                tx.executeSql('CREATE TABLE DEMO (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, kword TEXT NOT NULL, eword TEXT NOT NULL, pronoun TEXT NOT NULL, level INTEGER NOT NULL)');
                tx.executeSql('INSERT INTO DEMO (kword, eword, pronoun, level) VALUES ("Apple", "", "", 1)');
                tx.executeSql('INSERT INTO DEMO (kword, eword, pronoun, level) VALUES ("Orange", "", "", 2 )');
            } else {
                alert("table exist, dropping for test");
                tx.executeSql('DROP TABLE DEMO');
            }
        });
    }

    function isTableExists(tx, tableName, callback) {
        tx.executeSql('SELECT * FROM DEMO', [], function(tx, resultSet) {
            if (resultSet.rows.length <= 0) {
                callback(false);
            } else {
                callback(true);
            }
        }, function(err) {
            callback(false);
        });
    }
函数填充b(tx){
isTableExists(发送,“演示”,功能(状态){
如果(!状态){
警报(“表格不存在,正在创建一个”);
tx.executeSql('CREATE TABLE DEMO(id INTEGER NOT NULL主键自动递增、kword TEXT NOT NULL、eword TEXT NOT NULL、代词TEXT NOT NULL、level INTEGER NOT NULL)');
tx.executeSql('INSERT-INTO-DEMO(kword,eword,代词,level)值(“Apple”、“”、“”、1”);
tx.executeSql('INSERT-INTO-DEMO(kword,eword,代词,level)值(“Orange”、“”、“”、2”);
}否则{
警报(“表格存在,为测试而丢弃”);
tx.executeSql(“下拉表演示”);
}
});
}
函数isTableExists(发送、表名、回调){
tx.executeSql('SELECT*FROM DEMO',[],函数(tx,resultSet){

如果(resultSet.rows.length您的函数有一组问题,这些问题已在下面更正。它现在应该可以工作了

    function populateDB(tx) {
        isTableExists(tx, "DEMO", function(status) {
            if (!status) {
                alert("table not exist, creating one");
                tx.executeSql('CREATE TABLE DEMO (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, kword TEXT NOT NULL, eword TEXT NOT NULL, pronoun TEXT NOT NULL, level INTEGER NOT NULL)');
                tx.executeSql('INSERT INTO DEMO (kword, eword, pronoun, level) VALUES ("Apple", "", "", 1)');
                tx.executeSql('INSERT INTO DEMO (kword, eword, pronoun, level) VALUES ("Orange", "", "", 2 )');
            } else {
                alert("table exist, dropping for test");
                tx.executeSql('DROP TABLE DEMO');
            }
        });
    }

    function isTableExists(tx, tableName, callback) {
        tx.executeSql('SELECT * FROM DEMO', [], function(tx, resultSet) {
            if (resultSet.rows.length <= 0) {
                callback(false);
            } else {
                callback(true);
            }
        }, function(err) {
            callback(false);
        });
    }
函数填充b(tx){
isTableExists(发送,“演示”,功能(状态){
如果(!状态){
警报(“表格不存在,正在创建一个”);
tx.executeSql('CREATE TABLE DEMO(id INTEGER NOT NULL主键自动递增、kword TEXT NOT NULL、eword TEXT NOT NULL、代词TEXT NOT NULL、level INTEGER NOT NULL)');
tx.executeSql('INSERT-INTO-DEMO(kword,eword,代词,level)值(“Apple”、“”、“”、1”);
tx.executeSql('INSERT-INTO-DEMO(kword,eword,代词,level)值(“Orange”、“”、“”、2”);
}否则{
警报(“表格存在,为测试而丢弃”);
tx.executeSql(“下拉表演示”);
}
});
}
函数isTableExists(发送、表名、回调){
tx.executeSql('SELECT*FROM DEMO',[],函数(tx,resultSet){
如果(resultSet.rows.length为什么不使用

CREATE TABLE IF NOT EXISTS DEMO  (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, kword TEXT NOT NULL, eword TEXT NOT NULL, pronoun TEXT NOT NULL, level INTEGER NOT NULL)
你为什么不使用

CREATE TABLE IF NOT EXISTS DEMO  (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, kword TEXT NOT NULL, eword TEXT NOT NULL, pronoun TEXT NOT NULL, level INTEGER NOT NULL)

您好,我编辑了这个问题(在为SQL编写问题时出现了一些错误),因为我遗漏了“插入演示(id,word)”中的“id”处理SQL时出错:5.如果存在表演示,我将尝试不执行insert SQL。抱歉,我现在不明白您的问题,是否每次运行应用程序时都要创建表?我只想创建一次表,每次重新加载页面时,所有这些条目都会再次执行。因此,您只想创建一次表,而put数据也只有一次??是的。我只想在应用程序安装开始时设置所有表项一次。您好,我编辑了问题(在为SQL编写问题时出现了一些错误),因为我遗漏了“插入演示(id,word)”中的“id”处理SQL时出错:5.如果存在表演示,我将尝试不执行insert SQL。抱歉,我现在不明白您的问题,是否每次运行应用程序时都要创建表?我只想创建一次表,每次重新加载页面时,所有这些条目都会再次执行。因此,您只想创建一次表,而put数据也只有一次??是的。我只想在应用程序安装开始时设置所有表项一次。