无法使用cordova中的select选项插入sqlite

时间:2016-05-11 09:32:35

标签: javascript android sqlite cordova

我使用apache cordova创建了一个简单的应用程序,我尝试使用select选项将数据保存到sqlite但是错误,无法保存到sqlite并使用jquery mobile。

这是我的剧本

HTML

<input type="text" id="name" placeholder="Name book" />
  <select name="year">
        <option  value="0">Year Publish</option>
        <option  value="2011">2011</option>
        <option  value="2012">2012</option>
        <option  value="2013">2013</option>
        <option  value="2014">2014</option>
        <option  value="2015">2015</option>
        <option  value="2016">2016</option>
  </select> 

JS

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

    function insertDB(tx) {
        tx.executeSql('INSERT INTO BUKU (name,jilid) VALUES ("' +document.getElementById("name").value
                        +'","'+document.getElementById("jilid").value+'")');
        }

    function goInsert() {
            var db = window.openDatabase("Database", "1.0", "Cordova Buku", 200000);
            db.transaction(insertDB, errorCB, successCB);
        }
function populateDB(tx) {
      tx.executeSql('CREATE TABLE IF NOT EXISTS BUKU (id INTEGER PRIMARY KEY AUTOINCREMENT, name,jilid)');
   }

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

function successCB() {
        var db = window.openDatabase("Database", "1.0", "Cordova Buku", 200000);
            db.transaction(queryDB, errorCB);
   }

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

1 个答案:

答案 0 :(得分:0)

也许问题是数据类型,尝试创建这样的表:

CREATE TABLE IF NOT EXISTS BUKU (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT,jilid TEXT)

执行函数也应该像这样来防止注入和引号

的问题
tx.executeSql('INSERT INTO BUKU (name,jilid) VALUES (?,?)', [document.getElementById("name").value, document.getElementById("jilid").value]);