2009-03-21 11 views
8

Webkit(少なくともiPhoneとSafariで)はSQLite経由でHTML5のデータベースストレージをサポートしています。WebkitのHTML5データベースストレージから挿入IDを取得する

私は、次のトランザクションの挿入ID(データベースにオートインクリメントフィールド 'id'があります)を取得する最良の方法を理解しようとしています。

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

答えて

16

のコードサンプルでは、​​私はそれがiPhoneとSafariで動作します知っている、Appleのドキュメントからのもので、おそらくWebKitの。 resultSet.insertIdを使用して、resultSetレスポンス・オブジェクトから挿入IDを取得することもできます。たとえば、結果セット・オブジェクトの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

+0

おかげで、それは私が必要なものです! :-D – ceejayoz

+0

うれしい私は助けることができました! –

0

このような何かが動作するはず:以下

SELECT last_insert_rowid(); 
関連する問題