Webkit(至少在iPhone和Safari上)通过SQLite支持HTML5的数据库存储.
我正在试图弄清楚如何最好地为以下事务获取插入ID(数据库中有一个自动增量字段'id').
db.transaction(function(tx) { tx.executeSql("INSERT INTO teams (name) VALUES (?)", [$('#team_name').val()]); });
Heat Miser.. 16
下面的代码示例来自Apple的文档,我知道它适用于iPhone和Safari,也可能适用于WebKit.您可以使用resultSet响应对象中的插入ID.resultSet.insertId
另外,您可以获取受影响的行数,例如,通过使用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的HTML5数据库文档
下面的代码示例来自Apple的文档,我知道它适用于iPhone和Safari,也可能适用于WebKit.您可以使用resultSet响应对象中的插入ID.resultSet.insertId
另外,您可以获取受影响的行数,例如,通过使用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的HTML5数据库文档