Autor | Zpráva | ||
---|---|---|---|
Kcko Profil |
#1 · Zasláno: 7. 12. 2007, 03:31:49
Zdravim nocni ptaky,
hraju si trosku s transakcemi a vypotil sem tento kus kodu a zajimalo by mne zda-li jsem spravne umistil COMMIT , potazmo ROLLBACK. Prosim zkusenejsi aby se na to jukli, diky /** * Ulozi ticket */ function ticketSave() { global $login_id; $posledniZapas = current(array_keys($_POST["zapasHidden"])); // ulozime tiket $data = array ( "vlozil" => "$login_id", "datum" => "NOW()", "soutezID" => "$_GET[soutez]", "kurz" => "$_POST[celkovyKurz]", "sazka" => "$_POST[sazka]", "vyhra" => "$_POST[vyhra]", "posledni_zapas" => "$posledniZapas" ); try { // zalozeni transakce db::query("START TRANSACTION"); // ulozeni tiketu db::insert("kurzy_tikety", $data); if (mysql_error()) Throw new exception('Tiket se neuložil - ' . mysql_error()); // ziskani cisla tiketu $tiketID = db::lastID(); if (!$tiketID) Throw new exception('Nepodařilo se vygenerovat číslo tiketu'); // uložení tipů foreach ($_POST["zapasHidden"] as $zapasID => $volba) { $data = array ( "tiketID" => "$tiketID", "zapasID" => "$zapasID", "volba" => "'$volba'" ); db::insert("kurzy_tipy", $data); if (mysql_error()) Throw new exception('Tipy se neuložily - ' . mysql_error()); } // odečtení kreditu //odecti($cena, $kredit = false, $update = false, $userID, $soutezID) Credit::odecti($_POST["sazka"], Credit::status($login_id, $_GET["soutez"]), true, $login_id, $_GET["soutez"]); if (mysql_error()) Throw new exception("Nepodařilo se odečíst kredit - " . mysql_error()); // došlo to až sem tak potvrdime transakci db::query("COMMIT"); // presmerujeme na hlášku o uspesnem potvrzeni Redirect::url("?ok=1"); } catch (Exception $e) { echo "<p><strong>Uložení tiketu selhalo - chyba: <span style='color: red;'>" .$e->getMessage() . "</span></strong>"; db::query("ROLLBACK"); } } |
||
Časová prodleva: 16 let
|
0