sqlite - 从 Webkit 的 HTML5 数据库存储中获取插入 ID

标签 sqlite webkit auto-increment

Webkit(至少在 iPhone 和 Safari 上)通过 SQLite 支持 HTML5 的数据库存储。

我正在尝试找出如何最好地为以下事务获取插入 ID(数据库中有一个自动增量字段“id”)。

db.transaction(function(tx) {
  tx.executeSql("INSERT INTO teams (name) VALUES (?)", [$('#team_name').val()]);
});

最佳答案

下面的代码示例来自 Apple 的文档,我知道它适用于 iPhone 和 Safari,可能还有 WebKit。您可以使用 resultSet.insertId 从 resultSet 响应对象中获取插入 ID 此外,您还可以获取受影响的行数,例如通过使用 resultSet 对象的 rowsAffected 属性进行更新查询。

db.transaction(
function (transaction) {
    transaction.executeSql('INSERT into tbl_a (name) VALUES ( ? );',
        [ document.getElementById('nameElt').innerHTML ],
        function (transaction, resultSet) {
            if (!resultSet.rowsAffected) {
                // Previous insert failed. Bail.
                alert('No rows affected!');
                return false;
            }
            alert('insert ID was '+resultSet.insertId);
            transaction.executeSql('INSERT into tbl_b (name_id, color) VALUES (?, ?);',
                [ resultSet.insertId,
                  document.getElementById('colorElt').innerHTML ],
                nullDataHandler, errorHandler);
        }, errorHandler);
}, transactionErrorCallback, proveIt);

Apple's HTML5 Database Documentation

关于sqlite - 从 Webkit 的 HTML5 数据库存储中获取插入 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/669892/

相关文章:

android - 搜索标记的搜索框(谷歌地图)

sql - 使用 SQLite SELECT 使用连接表将连接表列合并为每个类别的一行

ios - SQLITE (fmdb) 选择 x 为空的位置不起作用

css 边框和背景颜色未在 webkit 浏览器上呈现

css - 诺基亚 web 40 应用开发者平台是否读取 CSS 前缀

c++ - 与 .so 文件链接 (webkit)

iphone - 带事件指示器的 UITableView

mysql - Hibernate 不填充 AUTO_INCREMENT 列作为复合 PK、错误或反功能的一部分?

java - jdbc 缺少右括号

php - 显示年份+自动增量作为列寄存器