我使用websql进行离线存储。以下addItem函数适用于其他浏览器,但Chromium除外:
itemset.webdb.createTable = function() {
var db = itemset.webdb.db;
db.transaction(function(tx) {
tx.executeSql("CREATE TABLE IF NOT EXISTS items(ID INTEGER PRIMARY KEY ASC,
item_name TEXT, desp TEXT, due_date DATE)", []);
});
}
itemset.webdb.addItem = function(item_name, desp, due_date) {
var db = itemset.webdb.db;
db.transaction(function(tx){
//var added_on = new Date();
tx.executeSql("INSERT INTO items(item_name, desp, due_date) VALUES (?,?,?)",
[item_name,desp,due_date],
itemset.webdb.onSuccess,
itemset.webdb.onError);
});
}
Chromium给出了错误:“出现了错误:无法准备语句(1个表项没有名为due_date的列)”。为什么它不起作用?
答案 0 :(得分:1)
只需将新字段添加到表中,例如下一个代码:
db.transaction(function(txt))
{
txt.executeSql("ALTER TABLE items ADD item_name TEXT, desp TEXT, due_date DATE");
}
答案 1 :(得分:0)
创建新表名或删除并创建表。