Visualizzazione dei risultati da 1 a 10 su 10

Discussione: commit e rollback

  1. #1

    commit e rollback

    Ciao,
    qualcuno di voi ha mai utilizzato questi due comandi??
    In pratica io ho un form che permette di inserire una parte dei dati e li passa ad una seconda pagina, ora inserico i dati passati nel database, e questa seconda pagina contiene altri campi da compilare che li passa ad una terza pagina che inserisce gli ultimi dati nel database.

    Ora non vorrei che dopo aver compilato il primo form e inserito i dati nel database cadesse la connessione e i miei dati rimangono a metà nel database, per questo vorrei utilizzare i comandi commit e rollback creando dei savepoint, mediante i quali, nel caso non venisse completato anche il secondo inserimento, allora mi cancellerebbe i dati lasciati a metà. Come si utilizzano questi comandi??

    grazie

  2. #2
    dovresti usare le tabelle InnoDB per questi comandi.

    Ti conviene in ogni caso avere un campo dove tieni traccia degli inserimenti in corso. Metti un flag 0/1 dove indichi se il record e' completato oppure no. Altrimenti rischi che vengano prelevati dei dati parziali prima che l'inserimento sia completato.

    Ti permettera' pure di far pulizia dei record non completati.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    grazie della risposta.

    due cose:
    Ma sti comandi a che livello li devo utilizzare?? Cioè li devo inserire nel mio codice php oppure in fase di costruzione del database??

    Seconda cosa: in pratica dovrei fare in modo che se il secondo inserimento termini correttamente allora faccio il commit,(confermo i dati) ma se il secondo inserimento non viene confermato quando faccio il rollback dei dati??

    grazie

  4. #4
    http://dev.mysql.com/doc/mysql/en/commit.html

    http://forum.html.it/forum/showthrea...hreadid=603762


    trovi tutto. Il come e il quando farlo ... fa parte della struttura del tuo script.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    grazie della segnalazione del post, purtroppo però arrivato ad un certo punto mchorney non ha più risposto.
    Questo rimane il mio dubbio:

    inizio la transazione con begin
    poi eseguo le mie query e soltanto alla fine dell'ultima query eseguo il comando commit

    è giusto??

    inoltre mettiamo che non giunga mai all'ultima query, e chiudo la pagina e quindi nn eseguo il commit, cosa succede alla mia tabella e soprattutto ai dati fino a quel momento inseriti??

    grazie di tutto

  6. #6
    Parli della struttura dello script?. Se l'evento puo' avvenire allora va gestito. Come? dipende da che fai nelle varie pagine. Potresti anche usare una tabella di appoggio e montare li' il record che trasferirai solo se andra' a buon fine. Ciclicamente farai una ripulitura dei record abbandonati.

    Personalmente preferisco questo sistema alle transazioni. Anche perche' mi permetterebbe agevolmente di riprendere il record in un secondo momento.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    lo sai quale è il nocciolo del problema?? in pratica dopo il primo form inserisco le variabili dentro un array, poi però non riesco a trasportare questo array nella mia seconda pagina e per questo le volevo inserire subito nel database. Non esiste un modo sicuro per inviare un array da una pagina ad un altra senza perdere dati???

    grazie ancora

  8. #8
    Originariamente inviato da pippuzzo80
    lo sai quale è il nocciolo del problema?? in pratica dopo il primo form inserisco le variabili dentro un array, poi però non riesco a trasportare questo array nella mia seconda pagina e per questo le volevo inserire subito nel database. Non esiste un modo sicuro per inviare un array da una pagina ad un altra senza perdere dati???

    grazie ancora
    Le sessioni. $_SESSION.

    Se apri una sessione e metti le variabile dentro l'array di sessione $_SESSION nella pagina seguente le puoi recuperare. Unica condizione che i cookie siano abilitati sul client.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    è questo il punto. E se non hanno i cookie abilitati?? non esiste un modo mediante il quale io riesca a trasportare queste variabili da pagina a pagina??

    grazie

  10. #10
    Originariamente inviato da pippuzzo80
    è questo il punto. E se non hanno i cookie abilitati?? non esiste un modo mediante il quale io riesca a trasportare queste variabili da pagina a pagina??

    grazie
    Perche'??? se metti i dati su db come faresti a riconoscere lo user della prima pagina???

    Richiedi i cookie.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.