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