Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [PDO & SQLITE] Problema transazioni

    Ciao a tutti!

    Sto adattando uno script che usa MySql per fare in modo che vada con Sqlite usando le estensioni PDO.

    Ora mi trovo a dover "convertire" una transazione, ma sto avendo un po' di problemi.

    il codice che uso è questo:

    Codice PHP:
    $mypdo->beginTransaction();
    $error 0;

    $query_update "UPDATE utenti SET password = '$password' WHERE id = '$id' ";
    $result $mypdo->exec($query_update);

    //poi faccio un po' di operazioni su dei file di testo
    //Se queste operazioni falliscono incremento $error

    //Se $error > 0 faccio un rollback, altrimenti eseguo il commit

    if($error  0)
     {
       
    $mypdo->rollBack();
       echo 
    "<p class=\"error\">ERRORE</p>";
     }
    else
     {
      
    $mypdo->commit();
      echo 
    "<p class=\"success\">TUTTO OK.</p>";
      
    $erroinfo $mypdo->errorInfo();
      echo 
    $erroinfo[2];
     } 
    Il problema sta nel fatto che non mi esegue il commit. Per capirne di più ho intercettato l'eventuale errore successivo al commit, ma non ci ho capito nulla ugualmente. Cmq, l'errore è il seguente:

    cannot commit transaction - SQL statements in progress

    Qualche suggerimento?

    CIAU CIAU
    Se la vita ti sorride, ti sta prendendo per il cul0

  2. #2
    Risolto!

    Praticamente il problema era dovuto ad una query con "SELECT COUNT" presente in un punto precedente dello script.
    Praticamente, dopo una query di quel tipo, devo inserire un "closeCursor()" per rendere nuovamente lo statement disponibile. Se invece eseguo una "SELECT" classica non ho nessun problema.

    CIAU CIAU
    Se la vita ti sorride, ti sta prendendo per il cul0

  3. #3
    Rettifico.

    Il problema si verifica con ogni tipo di "SELECT", quinid devo fare closeCursor per ogni query eseguita prima di iniziare la transazione.

    CIAU CIAU
    Se la vita ti sorride, ti sta prendendo per il cul0

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.