steffi: cgi transaktionen

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();

Anzahl um eins verringern

$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

  1. 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.

  2. 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