0

所以我正在使用 MDN 的 Add-on Builder 开发这个插件,并且需要连接 SQLite 数据库。只要我在没有绑定参数的情况下插入值(即通过 executeSimpleSQL()),连接就可以很好地创建并且插入也很好。一旦我使用 createStatement() 方法插入值,它就不起作用。这是我到目前为止所做的。

let file = FileUtils.getFile("Desk", ["my_db_file_name.sqlite"]);
let mDBConn = Services.storage.openDatabase(file); 
mDBConn.executeSimpleSQL("CREATE TEMP TABLE IF NOT EXISTS element (rating VARCHAR(50))");

let stmt = mDBConn.createStatement("INSERT INTO element (rating) VALUES(:value)");
stmt.params.value = 13;

//mDBConn.executeSimpleSQL("INSERT INTO element (rating) VALUES(13)");

var statement = mDBConn.createStatement("SELECT * FROM element WHERE rating = :rat");
statement.params.rat = 13;
try {
  while (statement.step()) {
    let value = statement.row.rating;
    console.log(value);
  }
}
finally {
  statement.reset();
}

请注意,带有绑定参数的 SELECT 语句工作正常,只是 INSERT 语句有问题。

有任何想法吗?

4

1 回答 1

2

你忘记打电话了execute()

于 2013-05-28T08:51:41.547 回答