此代码必须提醒我添加到表中的内容。他没有警告变量“ hallo”的值。您知道这段代码有什么问题吗?
<html>
<body>
<script>
var db = openDatabase('neueDb', '1.0', "Test DB", 2 * 1024 * 1024);
var hallo = "hallo1234";
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (log)');
tx.executeSql('INSERT INTO LOGS (log) VALUES ("foobar")');
tx.executeSql('INSERT INTO LOGS (log) VALUES ("logmsg")');
tx.executeSql('INSERT INTO LOGS (log) VALUES (?)', hallo);
});
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
var len = results.rows.length, i;
for (i = 0; i < len; i++) {
alert(results.rows.item(i).log);
}
}, null);
});
</script>
</body>
感谢您的所有答案!
恋爱,
德克斯特
最佳答案
对我来说,在Chrome中执行tx.executeSql('INSERT INTO LOGS (log) VALUES (?)', hallo);
时出现错误VM109:1 Uncaught TypeError: Failed to execute 'executeSql' on 'SQLTransaction': The 2nd argument is neither an array, nor does it have indexed properties.(…)
我不知道为什么,我以前从未遇到这个错误。但是,如果我执行db.transaction(function (tx) { tx.executeSql('INSERT INTO LOGS (log) VALUES (?)', [hallo]); })
则它正常工作,然后警报显示hallo
值确定。
我认为您在插入值时出错,这就是为什么它不会收到警报的原因。