cgi transaktionen
steffi
- perl
0 King^Lully0 Klaus Mock
Hallo,
ich würde gern in einem perl skript mit cgi Änderungen in einer Datenbank vornehmen.
Ist auch kein Problem.
Aber wie kann ich mit cgi transaktionen ausführen?
Für jedes SOL-Statement mache ich eine eigene Anfrage, bei Transaktionen müsste ich die aber doch in eine Abfrage packen, die mit BEGIN startet und mit COMMIT bzw. ROLLBACK endet.
Geht das???
Als Beispiel:
diese beiden Anfrage hätte ich gerne in eine Transkation verpackt.
Aber WIE??
$sql = "insert into leihuebersicht
set medium_m_id=$m_id,
benutzer_b_id=$b_id,
zeitstempel=now()";
$sth = $verb->prepare($sql);
$sth->execute();
$sth->finish();
$sql = "update medium, leihuebersicht
set anzahl=anzahl-1
where medium_m_id=m_id
and medium_m_id=$m_id
and benutzer_b_id=$b_id";
$sth = $verb->prepare($sql);
$sth->execute();
$sth->finish();
Bin für jeden Tipp dankbar!
steffi
Transaktionen muss erst einmal Dein RDMS können. Transaktionen sind gegeben, wenn (rob gesagt) in zwei oder mehreren Tabellen Änderungen vorzunehmen sind, die entweder zusammen oder gar nicht ausgeführt werden sollen.
Wenn Dein RDBMS Transaktionen kann, dann schicke per PHP einen dafür geeigneten Batch zum Datenserver bzw. besser schreibe eine so genannte stored procedure für diesen Zweck.
Hallo,
Aber wie kann ich mit cgi transaktionen ausführen?
Mit CGI gar nicht. Aber in Perl, speziell mit dem DBI Modul geht das recht einfach.
siehe dazu http://search.cpan.org/~timb/DBI-1.54/DBI.pm#Transactions.
Grüße
Klaus