Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: PDO MySQL transakce

Aktivity
Avatar
stedronsky
Člen
Avatar
stedronsky:12.2.2015 14:09

Ahoj všem.
Snažím se rozchodit pod PDO transakce.
Podle dostupných informací na internetu jsem napsal tento kód.
Podle všeho pokud se v bloku "try" vyskytne chyba tak by se měl provést roolback ale neprovede.
První vložení do "tabulka2" se vždy vykoná.
Nevím kde je chyba.
Podadí někdo?

// Připojení k databázi
$db = new Db();
$db->pripoj("localhost", "xxx", "xxx", "transakce");

try {
        $db->beginTransaction();
        $data = array("prijmeni"=>'Novak');
        $db->vloz('tabulka2', $data);
        $id_z_tabulky2 = $db->getLastId();
        $data1 = array("jmeno"=>'Josef',"id_tabulka2"=>$id_z_tabulky2);
        $db->vloz('tabulka1xxxxx', $data1); // zamerne spatne pojmenovana tabulka spravna je tabulka1
        $db->commit();
} catch (Exception $e) {
        $db->rollBack();
        echo "Failed: " . $e->getMessage();
}
 
Odpovědět
12.2.2015 14:09
Avatar
shaman
Člen
Avatar
Odpovídá na stedronsky
shaman:13.2.2015 16:13
try {
<nejaky kod>
    } catch (Exception $e) {
    <ak nieco zlyha v kode vysie, vykonaj toto>
        }

Kedze ty nevidis hlasku Failed: <dovod> tak ti to nezlyhalo a ani rollback sa nepreviedol. Skus si vypisovat hodnoty po riadku v try bloku.

Nahoru Odpovědět
13.2.2015 16:13
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.