MySQL instert in mehrere Tabellen // Rollback?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL instert in mehrere Tabellen // Rollback?

    Moin,

    ich möchte in drei Tabellen ein INSERT durchführen. Es sollen endweder alle oder keine durchgeführt werden. Ist dies möglich. Oder wie stelle ich sicher das immer alle drei INSERTS erfolgreich sind?

    Würde mich über paar Anregungen freuen

    MfG

  • #2
    Such mal im Forum ich glaub TBT hat dazu ne Klasse geschrieben.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      hab ich nicht
      aber erklärt wie ich das mache.

      1. jede Tabelle hat einen auto_increment Wert
      2. meine DB Klasse liefert bei einem Insert automatisch die last_insert_id zurück

      programmiert werden kann das dann so:
      PHP-Code:
      if($id1=$query->insert('insert into ...'){
         if(
      $id2=$query->insert('insert into ...'){
            if(
      $id3=$query->insert('insert into ...'){
               echo 
      "alles ok";
            }else{
               
      // rollback 1. Query
               
      $query->delete('delete from ... where id='.$id1);
               
      // rolbback 2.Query
               
      $query->delete('delete from ... where id='.$id2);
            }
         }else
            
      // rollback 1. Query
            
      $query->delete('delete from ... where id='.$id1);

      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        ups dachte ich hab mal sowas von Dir gelesen...
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Du kannst allerdings auch einfach den InnoDB Tabellen Handler verwenden ... der unterstützt dann "echte" Transaktionen ... !
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            @goth
            Was ist der InnoDB Tabellen Handler??? Wo findet man den bzw. nutzt diesen???
            mfg
            Günni


            Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
            Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
            Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
            City-Tiger - Online durch die Straßen tigern...

            Kommentar


            • #7
              Der wird mit mysql mitgeliefert ... muß aber mit einkompiliert und konfiguriert werden ...

              http://www.mysql.com/documentation/m...es.html#InnoDB

              Die meisten Provider haben Ihn allerdings zumindest nicht konfiguriert.

              als zusätzliches Bonbon gibt's dann aber auch FOREIGN Key Constraints ...
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar

              Lädt...
              X