transactions - PHP ADOdb not respecting autoCommit=false -


मेरे पास निम्न कोड है

  & lt;? Php include ("adodb5 / adodb inc.php "); // एडीओडीबी लाइब्रेरी $ डीबी = न्यूएडकॉन्केक्शन ('माइस्स्क') शामिल है; // एक नया कनेक्शन $ conn = $ db- & gt; कनेक्ट ("स्थानीयहोस्ट", "परीक्षण", "पासवर्ड", "test_db"); अगर (! $ Conn) {गूंज 'कनेक्ट करने में विफल'; मरने (); } और {$ db- & gt; ऑटो कॉमेट = गलत; $ Db- & gt; StartTrans (); $ Statement1 = $ db- & gt; तैयार करें ("तालिका 1 (कॉड) मूल्यों में डालें" (1) "); $ Ok1 = $ db- & gt; निष्पादित करें ($ statement1); $ Statement2 = $ db- & gt; तैयार करें ("तालिका 2 एएएएएए (कॉड) मान (1)" में डालें); $ Ok2 = $ db- & gt; निष्पादित करें ($ statement2); $ Statement3 = $ db- & gt; तैयार करें ("तालिका 3 (कॉड) मूल्यों में डालें" (1) "); $ Ok3 = $ db- & gt; निष्पादित करें ($ statement2); यदि (! $ ठीक 1) {गूंज 'विफल 1'; $ Db- & gt; FailTrans (); } और अगर (! $ Ok2) {गूंज 'विफल 2'; $ Db- & gt; FailTrans (); } और अगर (! $ Ok3) {गूंज 'असफल 3'; $ Db- & gt; FailTrans (); } और अगर ($ ok1 और & amp; $ ok2 और & amp; $ ok3) {/ / केवल अगर सभी ठीक हैं तो $ db- & gt; पूर्ण ट्रान्स (); }}? & Gt;   

मैं $ statement2 पर एक त्रुटि को मजबूर कर रहा हूं और जब मैं कोड चलाता हूं तो मुझे 'विफल 2' आउटपुट के रूप में मिलता है लेकिन समस्या यह है कि $ statement1 निष्पादित होता है और रिकॉर्ड डीबी में डाला जाता है ।

मैं चाहता हूं कि सभी बयान सिर्फ तभी करें जब वे सभी असफल न हों। $ Db- & gt; ऑटोकुमाइट = गलत; - क्या काम नहीं लगता है?

मुझे खुशी होगी अगर आप मुझे समाधान के लिए बाहर बता सकते हैं नोट $ autoCommit चर को "निजी, संशोधित न करें" के रूप में देखा गया है:

P>

ADODB के "mysql" चालक में कोई भी लेनदेन समर्थन नहीं है; अगर आप एक और हालिया रिलीज का उपयोग कर रहे हैं, तो ADODB का "माइस्क्लि" ड्राइवर शुरुआती ट्रांन्स (), कमिट ट्रान्स (), और सह; इन कार्यों पर दस्तावेज़ीकरण देखें।

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -