/ / Transakcje na kontrolerze kodowania? - php, codeigniter, przesyłanie plików, transakcje

Transakcje w kontrolerze kodów? - php, codeigniter, przesyłanie plików, transakcje

Używam Codeigniter 2.1.4 i próbuje wdrożyć transakcję. Być może brakuje mi punktu transakcji, ale próbuję przesłać plik na mój serwer i utworzyć wpis bazy danych dla tego pliku. Jeśli wstawienie wiersza lub przesłanie pliku nie powiedzie się, chciałbym nie rób tego.

to jest sedno mojego kontrolera

najpierw otwórz transakcję

$this->db->trans_begin();

dodaj wpis z modelem

$fileId = $this->file_model->addFile("someinfo");

wykonaj przesyłanie plików

$upload = $this->upload->do_upload("file");

sprawdź, aby upewnić się, że oba minęły

//commit
if($fileId AND $upload){
$this->db->trans_commit();
}

//rollback
else{
$this->db->trans_rollback();
}

transakcje nie działają, a wpis bazy danych jest dodawany za każdym razem, niezależnie od tego, czy przesyłanie się nie powiedzie, czy nie.

teraz z poprzedniego czytania wydaje się, że transakcje należą do modelu, ale to nie działa dla mnie, ponieważ przesyłam plik.

myśli o tym, jak to wdrożyć?

Odpowiedzi:

1 dla odpowiedzi № 1

Spróbuj tego:

$this->db->trans_start();

//Your code Here...

$this->db->trans_complete();

$trans_status = $this->db->trans_status();

if ($trans_status == FALSE) {
$this->db->trans_rollback();
} else {
$this->db->trans_commit();
}