2009-03-21 3 views
8

Webkit (по крайней мере, на iPhone и Safari) поддерживает хранилище базы данных HTML5 через SQLite.Получение идентификатора вставки из хранилища базы данных HTML5 Webkit

Я пытаюсь выяснить, как лучше всего получить идентификатор вставки (в базе данных есть поле автоинкремента «id») для следующей транзакции.

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

ответ

16

Пример кода ниже от документации Apple, я знаю, что это работает на iPhone и Safari, и, вероятно, WebKit. Вы можете получить идентификатор вставки из объекта ответа resultSet с помощью resultSet.insertId Кроме того, вы можете получить количество затронутых строк для запроса обновления, например, используя свойство rowsAffected объекта resultSet.

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(); 

 Смежные вопросы

  • Нет связанных вопросов^_^