所以我使用MDN的Add-on Builder开发这个附加组件,需要连接SQLite数据库。只要我插入没有绑定参数的值(即通过executeSimpleSQL()),连接就会很好地创建并且插入很好。只要我使用createStatement()方法来INSERT值,它就不起作用。这是我到目前为止所做的。
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语句有问题。
有什么想法吗?
答案 0 :(得分:2)
您忘了拨打execute()
。