transactionsका उपयोग करना इसका अर्थ है डेटा को सुरक्षित रूप से सम्मिलित करने के लिए डेटाबेस का समर्थन करना। इसलिए कोडनिर्देशक में हम मॉडल . में प्रत्येक डेटाबेस से संबंधित कार्यों को लिखते हैं नियंत्रक में नहीं। . और आपके दूसरे कोड में (जो काम नहीं कर रहा है) आपने वहां पर मॉडल की ओर इशारा किया है।(utils) इतना आसान मुझे यकीन है कि यह काम नहीं करेगा। क्योंकि यह मॉडल और नियंत्रक समानांतर के साथ एक सम्मिलित डेटा नहीं है। लेन-देन को मॉडल में कोडित किया जाना चाहिए (मैं अपने उत्तर में मॉडल में लिखूंगा )।
इस सामग्री को भी लोड करें
- डेटाबेस लाइब्रेरी
- मॉडल क्लास
- यूआरएल सहायक
- सत्र
मान्यताएं
अपने कोड में आपने $data . का इस्तेमाल किया है और $test सरणी के रूप में। तो मुझे लगता है कि डेटा डालने और अपडेट करने के लिए दो सरणी हैं।
आपके डेटा सेट
$data = array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
);
$id = 007;
$test = array(
'title' => $title,
'name' => $name,
'date' => $date
);
आपका कोड
$this->db->trans_start(); # Starting Transaction
$this->db->trans_strict(FALSE); # See Note 01. If you wish can remove as well
$this->db->insert('table_name', $data); # Inserting data
# Updating data
$this->db->where('id', $id);
$this->db->update('table_name', $test);
$this->db->trans_complete(); # Completing transaction
/*Optional*/
if ($this->db->trans_status() === FALSE) {
# Something went wrong.
$this->db->trans_rollback();
return FALSE;
}
else {
# Everything is Perfect.
# Committing data to the database.
$this->db->trans_commit();
return TRUE;
}
नोट
- डिफ़ॉल्ट रूप से कोडनिर्देशक सभी लेनदेन को सख्त मोड में चलाता है। कबसख्त मोड सक्षम है , यदि आप लेन-देन के कई समूह चला रहे हैं, यदि एक समूह विफल रहता है तो सभी समूहों को वापस ले लिया जाएगा। इफ़स्ट्रिक्ट मोड अक्षम है , प्रत्येक समूह का स्वतंत्र रूप से इलाज किया जाता है , अर्थात एक समूह की विफलता किसी अन्य को प्रभावित नहीं करेगी ।