2009-03-21 17 views
8

वेबकिट (कम से कम आईफोन और सफारी पर) एसक्यूएलसाइट के माध्यम से एचटीएमएल 5 के डाटाबेस स्टोरेज का समर्थन करता है।वेबकिट के एचटीएमएल 5 डाटाबेस स्टोरेज

मैं यह पता लगाने की कोशिश कर रहा हूं कि निम्न लेनदेन के लिए सम्मिलित आईडी (डेटाबेस में एक ऑटोइनक्रिकमेंट फ़ील्ड 'आईडी' कैसे प्राप्त करें)।

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

उत्तर

16

कोड नीचे दिए गए नमूना एप्पल के दस्तावेज़ से है, मैं इसे iPhone और सफारी, और शायद वेबकिट पर काम करता है। आप resultSet.insertId का उपयोग करके परिणामसेट ऑब्जेक्ट से सम्मिलित आईडी प्राप्त कर सकते हैं इसके अलावा, आप पंक्तियों का उपयोग करके अद्यतन क्वेरी के लिए प्रभावित पंक्तियों की संख्या प्राप्त कर सकते हैं उदाहरण परिणाम ऑब्जेक्ट की प्रभावित संपत्ति।

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

धन्यवाद, कि मैं क्या जरूरत है! :- डी – ceejayoz

+0

खुशी मैं मदद कर सकता था! –

0

कुछ इस तरह काम करना चाहिए:

SELECT last_insert_rowid(); 
संबंधित मुद्दे