所以我正在使用 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 语句有问题。
有任何想法吗?