Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    700

    transazioni con PDO, sceglie quali entrano nella transazione

    Ciao a tutti,

    non ho mai usato le transazioni, uso la classe PDO in PHP, volevo sapere se è possibile effettuare vari update/delete decidendo quali entrano nella transazione e quali no.

    UPDATE ...... entra nella transazione
    UPDATE ...... NON ENTRA nella transazione
    DELETE ....... entra nella transazione
    UPDATE ...... entra nella transazione
    DELETE ...... NON ENTRA nella transazione
    UPDATE ...... entra nella transazione

    Cioè vorrei annullare la transazione solo se non va a buon fine una delle tre che entra nella transazione e le rimanenti dovrebbero essere indipendenti.

    É possibile e come?

    Grazie,
    Roberto

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,943
    Credo che non sia possibile, quando dichiari l'inizio di una transazione, tutto ciò che avvine in essa fa parte della transazione.
    L'unico modo che avresti sarebbe di creare 2 connessioni al db, una la usi per le query appartenenti alla transazione, l'altra per le query indipendenti, una cosa del tipo:

    - crei connessione 1 (c1)
    - crei connessione 2 (c2)
    - c1 -> l'inizio della transazione
    - c1 -> Update
    - c2 -> Update
    - c1 -> Delete
    - c1 -> Update
    - c2 -> Delete
    - c1 -> Update
    - c1 -> Fine transazione

    Tutte le query eseguite su c1 faranno parte della transazione, quelle su c2 no.
    Il dubbio a questo punto è se all'eventuale fallimento di una query intermedia tutta l'esecuzione della transazione viene interrotta, tipo il sollevamento di un'eccezzione, e di conseguenza anche le query seguenti di c2 sarebbero saltate.
    Penso di no, si dovrebbe arrivare comunque alla fine e solo allora decidere se fare il rollback o il commit, quindi tutte le istruzioni dovrebbero venire eseguite, ma magari indaga meglio su questa cosa o aspetta qualcuno che lo sappia con certezza.

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 © 2020 vBulletin Solutions, Inc. All rights reserved.