Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
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.