NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Mezinárodní den IT společnosti je tady! Pouze nyní můžeš získat 90 % extra kreditů při nákupu od 1199 kreditů s promo kódem AJTACI90. Tak neváhej!

Diskuze: PDO MySQL transakce

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
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.