【问题标题】:getting an insert ID from Webkit's HTML5 database storage从 Webkit 的 HTML5 数据库存储中获取插入 ID
【发布时间】:2010-10-14 18:27:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: sqlite webkit auto-increment


    【解决方案1】:

    下面的代码示例来自 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

    【讨论】:

    • 谢谢,这正是我所需要的! :-D
    【解决方案2】:

    这样的事情应该可以工作:

    SELECT last_insert_rowid();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-14
      • 2020-11-25
      • 2023-03-24
      • 2018-03-14
      • 2018-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多