php: fehlerbehandlung...

  • hallo zusammen!
    also.. hat jemand eine ahnung, wie ich eine "sichere" fehlerbehandlung machen kann? also, ich möchte 4 werte in eine datenbank schreiben. aber das problem ist, dass ich alle werte will - oder gar keine.

    also etwa so..:

    Code
    $fehler = 0;
    [schreibe wert 1 provisorisch... falls fehler: $fehler = 1]
    [schreibe wert 2 provisorisch... falls fehler: $fehler = 1]
    [schreibe wert 3 provisorisch... falls fehler: $fehler = 1]
    [schreibe wert 4 provisorisch... falls fehler: $fehler = 1]

    wenn es jetzt irgendwo einen fehler gab, ist $fehler = 1, wenn alles geschrieben werden konnte, ist $fehler = 0.

    Code
    if ($fehler == 1)
    {
      echo "Fehler - keine Werte geschrieben!";
    }
    else
    {
      [schreibe alle vier werte definitiv in die datenbank];
      echo "alles ok";
    }

    hab schon von ob_start oder ob_end_flush gehört, aber irgendwie ist das doch etwas anderes....

    vielen dank!
    grüsse

  • Hmm in welcher Sprache denn ??

    in PHP würde ich es so lösen ( flas ich die frage richtig verstadne habe )


    Beispiel-Code für Datenbank Texte!!!

    Code
    $nachricht[1]="E-Mail Add angegeben";
    $bedingun[1]="strstr($email, '@')";
    $nachricht[2]="Name angegeben";
    $bedingun[2]="ereg('[^A-Za-z]', $name)";
    $nachricht[3]="ICQ angegeben"; 
    $bedingun[3]="ereg('[^0-9]', $icq)";


    Fehlerausgabe!!

  • Hi,

    in PHP kannst du das vergessen. Denn wenn sich das schreiben der Daten aus irgend einem Grund verzögert, wird dein Skript vielleicht vorher abgebrochen. Auf diese Weise schützen sich Server vor deadlocks durch fehlerhafte Skripte. Und wenn dein Skript abgebrochen wurde, kannst du auch keine Fehlerbehandlung mehr durchführen.

    Was du meinst ist sind Transaktionen, bzw. Transaktionssicherheit. Die meisten Datenbanken gestatten mittels Transaktionen, eine ganze Reihe von SQL-Statements auszuführen. Wenn eines dieser Statements scheitert, wird ein "Rollback" zum Anfang der Transaktion vollzogen.

    Es hängt also sehr von der verwendeten Datenbank ab. In deren Doku wirst du mehr dazu finden.

    Gruß, SloMo

  • vielen dank euch beiden!
    transaktionen mit diesem ACID zeuch hatten wir auch in der schule, bin allerdings nicht auf diese idee gekommen. ist allerdings genau das, was ich suchte.
    jetzt weiss ich immerhin das ich es über die datenbank und nicht über php machen muss =)
    grüsse

    [edit]
    für alle interessierten:

    (http://www.infos24.de/mysqle/handbuc…transaction.htm)

    genau was ich suchte. danke SloMo