Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पीडीओ एकाधिक प्रश्न:प्रतिबद्ध और रोलबैक लेनदेन

हाँ, आपका दृष्टिकोण सही है। Try...catch . का उपयोग करना कुछ मामलों में क्लीनर और अधिक पठनीय कोड हो सकता है लेकिन आपका समग्र दृष्टिकोण ठीक है।

यदि आपका कोड खंड ऐसे फ़ंक्शन से है जो डीबी प्रश्नों को संभालता है और बहुत कुछ नहीं, तो शायद मैं दृष्टिकोण को चारों ओर बदल दूंगा:

// Begin Transaction
$this->db->beginTransaction();

// Fire Queries
if(!$query_one->execute()){
    $this->db->rollback();
    // other clean-up goes here
    return;
}

if(!$query_two->execute()){
    $this->db->rollback();
    // other clean-up goes here
    return; 
}

$this->db->commit();

बेशक, अगर आपको return करने से पहले बहुत सारी सफाई की आवश्यकता है , तो आपका मूल दृष्टिकोण बेहतर है। विशेष रूप से इन मामलों में मैं पीडीओ ::ERRMODE_EXCEPTION का उपयोग करना चाहता हूं। इसके कुछ अतिरिक्त लाभ हैं, जैसे अपवाद स्वचालित रूप से लेन-देन को वापस ले लेते हैं जब तक कि वे पकड़े नहीं जाते।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. asp.net का उपयोग करके mySQL डेटाबेस से कनेक्ट करना

  2. DATE_SUB के इकाई पैरामीटर के लिए संग्रहीत कार्यविधि पैरामीटर का उपयोग करें

  3. MySQL के साथ एक वेबसाइट बनाएं

  4. AES_DECRYPT शून्य क्यों लौट रहा है?

  5. दोस्ती डेटाबेस स्कीमा