Chromium Web Browser:“出现了错误:无法准备语句(1个表项没有名为due_date的列)”

时间:2012-05-14 15:49:24

标签: html5 web-sql

我使用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的列)”。为什么它不起作用?

2 个答案:

答案 0 :(得分:1)

只需将新字段添加到表中,例如下一个代码:

db.transaction(function(txt))
{
    txt.executeSql("ALTER TABLE items ADD item_name TEXT, desp TEXT, due_date DATE");
}

答案 1 :(得分:0)

创建新表名或删除并创建表。