php - Weird insert behavior with mysql and codeginiter -


मेरे पास काफी आसान सम्मिलन वक्तव्य है

  & lt; ... & gt; यदि (! खाली ($ विशेषताओं)) {$ sql = 'INSERT IN' part_attrs` (`part_id`,` एट्रि`, `प्रकार`,` सूची_आर्डर`) मूल्य (?,?,?,?) '; विदेशी मुद्रा ($ कुंजी = $ के रूप में $ विशेषताएं = & gt; $ विशेषता) {$ this- & gt; db- & gt; क्वेरी ($ sql, ऐरे ($ partid, $ विशेषता [0], $ विशेषता [1], $ कुंजी)); $ Attrid = $ this- & gt; db- & gt; insert_id (); एट्री $ एट्रिड। '& Lt; br / & gt;'; यदि (स्ट्रेलन ($ विशेषता [2]) gt; 0) {$ मान = विस्फोट (',', $ विशेषता [2]); $ Sql ​​= 'एट्रि_वल्यूज़' में प्रविष्ट करें (`एट्रि_आईडी`,` फ़ील्ड_वल्यूज`) VALUES (?,?) '; विदेशी मुद्रा ($ मान $ मान) {$ this- & gt; db- & gt; क्वेरी ($ sql, ऐरे ($ attrid, trim ($ value))); }}}} & Lt; ... & gt;  

अजीब बात यह है कि केवल एक या दो पंक्तियां डाली जा रही हैं। मैंने उस आईडी को देखने के लिए पंक्ति को एक पंक्ति में डाल दिया था क्योंकि यह प्रत्येक प्रविष्टि के लिए वापस कर रहा था क्योंकि मुझे कोई त्रुटि नहीं मिली है। उदाहरण के लिए यदि मैं तीन आइटम सम्मिलित करता हूं तो यह 18, 124, 128 जैसा कुछ लौटाएगा। जहां 18 आईडी अगले और अपेक्षित आईडी है, इसलिए यह पंक्ति सम्मिलित की जाती है और फिर बाकी नहीं होती। कोई भी विचार गलत हो सकता है?

आप $ sql आपके दूसरे अगर कथन के अंदर हो 124 और 128 में attr_values ​​ तालिका से गुण हैं अपने अगर कथन के अंदर एक और चर नाम का उपयोग करने पर विचार करें, या $ sql को foreach पाश के अंदर पहले असाइनमेंट को स्थानांतरित करें (इसे नीचे एक पंक्ति में स्थानांतरित करें) ।


Comments