我使用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);
}
答案 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]);