Diskuze: PDO MySQL transakce

PHP PHP PDO MySQL transakce American English version English version

Aktivity (1)
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.