Visualizzazione risultati 1 fino 5 di 5

Discussione: Sql rollback non funziona

  1. #1
    coinroberto non è connesso Utente giovane
    Data registrazione
    10-06-2013
    Messaggi
    87

    Predefinito Sql rollback non funziona

    Ciao,
    non riesco a capire come mai non mi funzioni più il 'rollback' .. qualcuno mi sa dare un consiglio ?
    mi è stato suggerito di usare ..

    Codice:
    $query = "SET autocommit=0"
    .. ma niente !! :-(
    Del resto sono sicuro che un tempo funzionava

    Grazie mille

    Codice:
    // --> start transaction
    $query = "START TRANSACTION"; 
    if (!mysql_query($query, $db))                                                    
       {
          $esito = 'KO' ;                                                                                                    
          $err = "Start Transaction KO: " . mysql_error() . " - " . mysql_errno(); 
          goto end;                                  
       }
    
    
    $sysdata = @date('Y-m-d H:i:s');
    $id_scad = $_COOKIE['id_scad'];
    
    
    
    
    // --> update
    
    
    $query = "UPDATE scadenze 
              SET 
                 data_scadenza           =  '$data_scadenza_new'        ,    
                 importo                 =  '$importo_new'              ,
                 imp_pag_netto           =  '$imp_pag_netto_new'        ,
                 importo_avviso          =  '$importo_avviso_new'       ,
                 flg_importo_avviso      =  '$flg_importo_avviso_new'   ,
                 note                    =  '$note_new'                 ,
                 produttore              =  '$produttore_new'           ,
                 flg_no_provigione       =  '$flg_no_provigione_new'    ,
                 flg_forz_provigione     =  '$flg_forz_provigione_new'  ,
                 perc_prov_forzata       =  '$perc_prov_forzata_new'    ,
                 flg_forz_prov_rca       =  '$flg_forz_prov_rca_new'    ,
                 flg_forz_prov_ard       =  '$flg_forz_prov_ard_new'    ,
                 flg_forz_prov_re        =  '$flg_forz_prov_re_new'     ,    
                 diritti                 =  '$diritti_new'              ,   
                 ts_agg_scad             =  '$sysdata'                  ,
                 user_scad               =  '$user'
                              
              WHERE id_scad = $id_scad  "; 
    
    
    //echo "query  -------->  " . $query . "<br>";
    
    
    if (!mysql_query($query, $db))                                                              
       {
          $esito = 'KO' ; 
        if (mysql_errno() == '1064')                     
           {$err = "Usato caratteri non ammessi !!";}    
        else                                             
           {$err = "Errore durante UPADATE tab. scadenze: " .   mysql_error() . " - " . mysql_errno(); }
          goto end;                                  
       }
    
    
    
    
    
    
    // ========================================================================================
    
    
    end:
    $esito = 'KO';
    
    
    //echo "esito  -------->  " . $esito . "<br>";
    //echo "errore -------->  " . $err . "<br>";
    
    
    // --> gestione errori di sistema
    if ($flg_error_glob == 'S')
       {
        $esito = 'KO';
        $err = $err_descr_glob;
       }
    
    
    setcookie('esito_elab', $esito);
    setcookie('errore', $err); 
    setcookie('provenienza', 'scadenze_agg_exe');
    
    
    if ($esito == 'OK')
       {
        $query = "COMMIT"; 
        //$query = "ROLLBACK"; 
        if (!mysql_query($query, $db))                                                     
           {
            $err = "Commit KO: " .  mysql_error() . " - " . mysql_errno(); 
            setcookie('esito_elab', $esito);
            setcookie('errore', $err); 
            setcookie('pos_cursore', $pos_cursore);                
            header ( "Location: scadenze_agg.php");   
            exit;                                                  
           } 
        delete_cookie();   
        header ( "Location: scadenze_lista.php"); 
        exit;
       }
    else
       {
        $query = "ROLLBACK";                                                                    
        if (!mysql_query($query, $db))                                                      
           {$err = "ROLLBACK KO: " .    mysql_error() . " - " . mysql_errno(); } 
           
        setcookie('esito_elab', $esito);
        setcookie('errore', $err);   
        setcookie('pos_cursore', $pos_cursore);
        header ( "Location: scadenze_agg.php"); 
        exit;
       }

  2. #2
    coinroberto non è connesso Utente giovane
    Data registrazione
    10-06-2013
    Messaggi
    87

    Predefinito

    nessuno ?! :-(

  3. #3
    coinroberto non è connesso Utente giovane
    Data registrazione
    10-06-2013
    Messaggi
    87

    Predefinito

    Ciao,
    ho scoperto il motivo per cui non funziona il Rollback .. e a dire il vero mi stupisce un po che nessuno mi abbia aiutato ..
    Le tabelle sono state caricate tutte con ENGINE = 'MyISAM' anziché 'InnoDB'
    In effetti vedo in phpmyadmin che per la voce 'motore di memorizzazione' non c'è l'opzione InnoDB.
    Qualcuno mi sa spiegare sta cosa ?
    Grazie mille

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Il motore InnoDB non è disponibile subito, è un servizio aggiuntivo attivabile dal pannello di controllo di AlterVista.

  5. #5
    coinroberto non è connesso Utente giovane
    Data registrazione
    10-06-2013
    Messaggi
    87

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Il motore InnoDB non è disponibile subito, è un servizio aggiuntivo attivabile dal pannello di controllo di AlterVista.
    Perfetto .. visto.
    Grazie mille

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •