Web Sql 选择语句无法提取第三列
Web Sql select statement not able to extract third column
>演示
我无法检索使用警报框显示时显示未定义的行的第三个值。我基本上要实现的是将 4 行插入表格并根据需要根据列排序检索它们
.HTML
<div id="status" name="status">Status Message</div>
爪哇语
var db = openDatabase('mydb', '1.0', 'Test DB', 4 * 1024 * 1024);
var msg;
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log Text,log1 Text)');
tx.executeSql('INSERT INTO LOGS (id, log,log1) VALUES (1, "foobar","sa")');
tx.executeSql('INSERT INTO LOGS (id, log,log1) VALUES (2, "logmsg","da")');
msg = '<p>Log message created and row inserted.</p>';
document.querySelector('#status').innerHTML = msg;
});
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
var len = results.rows.length,
i;
msg = "<p>Found rows: " + len + "</p>";
document.querySelector('#status').innerHTML += msg;
for (i = 0; i < len; i++) {
msg = "<p><b>" + results.rows.item(i).log + "</b></p>";
document.querySelector('#status').innerHTML += msg;
var book = results.rows.item(i);
console.log(book);
alert(book.log1);
}
}, null);
});
在这里,我制作了一些与您非常相似的东西,并且在这里它正在工作。在这里,我的ID是这样的:
id 整数主键
所以当我做插入时,我不必使用它们,我让 web sql 来处理它
tx.executeSql('INSERT INTO LOGS (log,log1) VALUES ("logmsg","da")');
另外,我使用承诺(下面的代码使用angularJs
self.query = function(query, bindings) {
bindings = typeof bindings !== 'undefined' ? bindings : [];
var deferred = $q.defer();
self.db.transaction(function(transaction) {
transaction.executeSql(query, bindings, function(transaction, result) {
deferred.resolve(result);
}, function(transaction, error) {
deferred.reject(error);
});
});
return deferred.promise;
};
self.fetchAll = function(result) {
var output = [];
for (var i = 0; i < result.rows.length; i++) {
output.push(result.rows.item(i));
}
return output;
};
self.fetch = function(result) {
return result.rows.item(0);
};
所以我可以这样使用它:
return DB.query('SELECT * FROM registro WHERE dia = ? and mes = ? and ano = ? order by horario', [dia, mes, ano])
.then(function(result){
return DB.fetchAll(result);
});
我希望这能给你一些方向...
您的演示链接对我来说效果很好(使用 Chrome 39) - 运行后我收到"sa"、"da"警报。所以我认为这是特定于您的浏览器的东西,或者更可能是您的缓存。
您是否一开始创建了没有 log1 列的 LOG 表?也许它仍然存储在您的浏览器中,因为
CREATE TABLE IF NOT EXISTS LOGS (id unique, log Text,log1 Text)
行不会覆盖它。
在Chrome中,您可以使用ChromeDevTools和"资源"选项卡检查浏览器的WebSQL模式保留,查看那里,看看mydb/LOGS表中是否有log1列和数据。
相关文章:
- Bootstrap-三列相等;t更改'a'要素
- 在最初的查询/表格绘制中只提取谷歌电子表格的一列
- CSS三维旋转;不能在Chrome上使用列布局
- JavaScript:从表配置字符串中提取列标题
- 使用 javascript 从特定列中提取数据
- 响应式三列重新堆叠
- 将两个数组中的项目合并到第三个数组中,其中一列从第一个数组中减去第二个索引
- 使用 jQuery 将整个数据列从 HTML 表提取到数组中
- Breeze 查询不提取检查 sql 服务器表中日期列的记录
- Web Sql 选择语句无法提取第三列
- 如何在 sqlite 中从记录中提取单个数据列
- 具有切换图像的三列画廊
- 可以't在我的HTML表中显示第三列(向下搜索功能jQuery/JavaScript)
- 我将如何提取表中特定列的第二低值
- D3.js如何从具有多个Y轴列的数据数组中提取Y域值
- 向数组添加第三列
- 一行有三列,但是当我把值放到第一列时,它会自动转到其他两列
- 根据每行第三列的内容将一个大表拆分为两个表
- 在三列中显示帖子
- 单击第三列中的按钮时,无法从表的第二列获取数据