08. 02. 2012. | #1 |
član
Certified
Datum učlanjenja: 21.05.2010
Lokacija: Nis
Poruke: 54
Hvala: 24
450 "Hvala" u 10 poruka
|
CodeIgniter i Transaction
Imam sledeci problem... Treba da koristim transakcije jer imam 3 upita update za 3 tabele, koji treba da se odrade u nizu...
Posto CI podrzava transakcije odlucio sam se za njivo resenje, a nude 2. I Nacin $this->db->trans_start(); $this->db->query('AN SQL QUERY...'); $this->db->query('ANOTHER QUERY...'); $this->db->trans_complete(); if ($this->db->trans_status() === FALSE) { // generate an error... or use the log_message() function to log your error } II Nacin $this->db->trans_begin(); $this->db->query('AN SQL QUERY...'); $this->db->query('ANOTHER QUERY...'); $this->db->query('AND YET ANOTHER QUERY...'); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); } else { $this->db->trans_commit(); } Probao sam oba nacina i javlja mi se sledeci problem... Prva dva upita su ok i rade a treci sam pokusao da pokvarim na sledeci nacin $this->db->where('id', 4745)->update($this->_dbTableNum, $dataOtherTablesStatus); Problem je sto nemam ovaj ID u bazi, znaci ne vrsi update... Pokusam sam za ID da unesem i string 'fgygog', a on uvek vraca true za gornji query. Pa transakcija radi, upise u 2 tabele u trecu nista... A to je ono lose. Kako zapravo ovo radi u CI. Ja sam resio na sledeci nacin.. $query3 = $this->db->where('id', 4745)->update($this->_dbTableNum, $dataOtherTablesStatus); if(!$query3 || $this->db->affected_rows() == 0) { $error = 1; } else {} if ($error === 1) { $this->db->trans_rollback(); ... bla bla Ovo radi, ali mene zanima sta je sa zvanicnim CI i njegovim preporukama za transkacije... Kako to radi, nije mi bas jasno.. http://codeigniter.com/user_guide/da...nsactions.html |
"Hvala" spezia za poruku: |
|
|