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

PHP + MySQL लेनदेन उदाहरण

लेन-देन के साथ काम करते समय मैं आमतौर पर जिस विचार का उपयोग करता हूं वह इस तरह दिखता है (अर्ध-छद्म कोड) :

try {
    // First of all, let's begin a transaction
    $db->beginTransaction();
    
    // A set of queries; if one fails, an exception should be thrown
    $db->query('first query');
    $db->query('second query');
    $db->query('third query');
    
    // If we arrive here, it means that no exception was thrown
    // i.e. no query has failed, and we can commit the transaction
    $db->commit();
} catch (\Throwable $e) {
    // An exception has been thrown
    // We must rollback the transaction
    $db->rollback();
    throw $e; // but the error must be handled anyway
}

ध्यान दें कि, इस विचार के साथ, यदि कोई क्वेरी विफल हो जाती है, तो एक अपवाद अवश्य फेंका जाना चाहिए:
  • पीडीओ ऐसा कर सकता है, यह इस पर निर्भर करता है कि आप इसे कैसे कॉन्फ़िगर करते हैं
    • देखें PDO::setAttribute
    • और PDO::ATTR_ERRMODE और PDO::ERRMODE_EXCEPTION
  • अन्यथा, किसी अन्य एपीआई के साथ, आपको किसी क्वेरी को निष्पादित करने के लिए उपयोग किए गए फ़ंक्शन के परिणाम का परीक्षण करना पड़ सकता है, और स्वयं एक अपवाद फेंकना पड़ सकता है।

दुर्भाग्य से, इसमें कोई जादू शामिल नहीं है। आप केवल कहीं एक निर्देश नहीं डाल सकते हैं और लेनदेन स्वचालित रूप से कर सकते हैं:आपको अभी भी यह निर्दिष्ट करना होगा कि लेनदेन में प्रश्नों के किस समूह को निष्पादित किया जाना चाहिए।

उदाहरण के लिए, प्राय:आपके पास लेन-देन से पहले कुछ प्रश्न होंगे (begin ) और लेन-देन के बाद कुछ और प्रश्न (commit . के बाद या rollback ) और आप चाहते हैं कि उन प्रश्नों को निष्पादित किया जाए चाहे कुछ भी हो (या नहीं) लेन-देन में।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रोजेक्ट लिंक वैंप सर्वर पर काम नहीं करते हैं

  2. PHP और mySQL:वर्ष 2038 बग:यह क्या है? इसे कैसे हल करें?

  3. MySQL में लोकेशंस की पूरी सूची

  4. CSV फ़ाइल को सीधे MySQL में आयात करें

  5. Neo4j - Cypher . का उपयोग करके एक इंडेक्स बनाएं