Thread [MySQL]Transaktionen in "BDB" Tabellen
(12 answers)
Opened by SirLant at 2003-08-24 01:38
Aber das Script läuft noch nicht
Hier mal der Code: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 $dbh->{AutoCommit}= 0; #Für Transaktion eval { bestellung_speichern ($dbh, $bestell_info) and $dbh->commit (); }; if ($@) { #hat nicht Funktioniert $dbh->rollback (); $dbh->disconnect (); $peh->schwerer_fehler ("Ein Problem mit der Datenbank ist aufgetreten.Bitte versuchen sie es noch einmal."); } $dbh->{AutoCommit} = 1; #Transaktion abgeschlossen Die Funktion bestellung_speichern: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 sub bestellung_speichern { my ($dbh, $bestell_info) = @_; #Datensatz in doku_bestell $dbh->do ("INSERT INTO doku_bestell (bestell_datum, bestell_preis, aut_id, kunden_name, kunden_email) VALUES (CURRENT_DATE,?,?,?,?)", undef, $bestell_info->{gesamtpreis}, $bestell_info->{aut_id}, $bestell_info->{kunden_name}, $bestell_info->{kunden_email} ); #Bestell_id ist der Auto_Increment wert von eben $bestell_info->{bestell_id} = $dbh->{mysql_insertid}; #für jedes Dokument einen Datensatz in doku_posten for (@{$bestell_info->{posten}}) { #Passwort für das Dokument erzeugen und speichern my $passwort = passwort (); my $a; #Erzeugt die Links zu den Dokumenten $a = sprintf ("dokument.cgi?bestellung=%s;doku=%s;password=%s", escape ($bestell_info->{bestell_id}), escape ($_->{doku_id}), escape ($passwort) ); $_->{url} = $peh->haupt_url () . $a; $dbh->do ("INSERT INTO doku_posten (bestell_id, doku_id, preis, passwort) VALUES (?,?,?,?)",undef, $bestell_info->{bestell_id}, $_->{doku_id}, $_->{preis}, $passwort ); } } Ist da nen Fehler den ich übersehen habe? Edit: Habe dazu mal nen neuen Thread erstellt, da es zu dem Topic nicht mehr passt.\n\n <!--EDIT|SirLant|1061812864--> --Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots. So far, the Universe is winning! |