[PHP] MySQLi Transaction Problem

Dieses Thema im Forum "Webentwicklung" wurde erstellt von opio12, 3. Juli 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 3. Juli 2009
    MySQLi Transaction Problem

    Hallo,

    PHP:
    <? php

    $mysqli 
    = new  mysqli ( 'localhost' 'root' '' 'test' );
    $mysqli -> autocommit ( FALSE );

    $stmt  $mysqli -> prepare ( "INSERT INTO test SET a='testa1', id='78'" );
    $stmt -> execute ();
    $ok  $stmt -> affected_rows ;
    $stmt -> close ();

    $stmt  $mysqli -> prepare ( "INSERT INTO test SET a='testa2', id='1'" );
    $stmt -> execute ();
    $ok1  $stmt -> affected_rows ;
    $stmt -> close ();

    echo 
    $ok  $ok1 ;

    if ( 
    $ok  &&  $ok1  ) {
        
    $mysqli -> commit ();
    } else {
        
    $mysqli -> rollback ();
        
    // Handle error
        
    echo  "fehler" ;
    }

    $mysqli -> close ();

    echo 
    "Done." ;

    ?> 
    Kann mir jemand sagen warum das rollback in diesem Falle nicht funktioniert? (wenn ein Statement nicht korrekt ausgeführt wird sollte ja das andere auch nicht in der DB landen, leider ist das aber nicht so)

    MfG
     
  2. 3. Juli 2009
    AW: MySQLi Transaction Problem

    stell den typ der tabelle mal auf InnoDB
    Code:
    ALTER TABLE test Type=InnoDB
    im übrigen gibt es die methode "query", siehe PHP: mysqli::query - Manual
     
  3. 3. Juli 2009
    AW: MySQLi Transaction Problem

    Ok, danke dran könnte es liegen, probier ich morgen aus. Jup, ich weiß das es die methode query gibt, nur kann ich mit der nix anfangen, da ich Prepared Statements brauche.(in dem Fall sinnlos, da hast du recht, aber das war nur ein Beipsiel, das ich auf die Schnelle runtergetippt habe)

    MfG

    //EDIT: vielen dank, das ganze klappt jetzt!
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.