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

    php mysql bloccare tabella durante transazione

    salve,
    volevo chiedervi una cosa:
    sto lavorando ad un progetto in php e mysql, ho la necessità che durante una transazione il mio database venga bloccato per evitare altre transazioni fin quando non si sia conclusa la prima.

    qualcuno di voi ha mai realizzato qualcosa di simile in php e mysql??

    grazie in anticipo

  2. #2

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

  3. #3
    ok, grazie per il link, ho letto bene però mi è venuto un dubbio:

    nel mio caso dovrei utilizzare le transizioni, quindi posso convalidare le operazioni eseguite nel database con commit oppure utilizzare rollback, però cosa mi garantisce che qualcun altro non aggiorni la mia tabella prima che io finisca?? da quanto ho capito non posso utilizzare contemporaneamente lock e transazioni...

  4. #4

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

  5. #5
    oggi gli dò una lettura.
    ti ringrazio in anticipo!!!

    sempre disponibile.


    ciao

  6. #6
    allora ho letto tutto. Però non mi funzionano...

    ho provato eseguendo delle query inziandole:

    SET AUTOCOMMIT=0
    oppure
    START TRANSACTION
    oppure BEGIN


    e terminando con rollback


    ma niente le query di inserimento vengono comunque eseguite....


    la cosa strana è che se prova ad eseguire i comandi anche con query browser non ricevo nessun messaggio di errore, però la query viene comunque eseguita senza effettuare il rollback.... qualcuno mi può aiutare??

    per caso si deve settare qualche privilegio o qualcos'altro??


    dimenticavo... ovviamente le tabelle sono Innodb

    grazie in anticipo.

  7. #7
    Dovresti provare con una pagina php oppure da shell. I tools grafici rilasciano la connessione dopo ogni query... non saprei dirti come si comportano, di certo che bisognerebbe mettere tutta la sequenza nella stessa finestra di query..

    La pagina php deve chiudersi sempre con il commit o rollback.

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

  8. #8
    ma veramente è quello che ho fatto... l'ho messo in una pagina php

    dbquery('begin');

    $query=" INSERT INTO clienti VALUES('".$nome."','".$cognome."','".$codice."','" .$pwd."','".$ref."' );

    $res=dbquery($query);

    dbquery('ROLLBACK');


    dove dbquery è una funzione che esegue mysql_query...

    nonostante rollback la query viene eseguita comunque....

  9. #9
    lascia perdere le funzioni quando fai le prime prove... e prova anche da shell. Per funzionare funziona, questo e' certo. Se non va il tuo script....

    prova in modo procedurale comando per comando. Poi farai tutte le funzioni che ti pare.

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

  10. #10
    grazie mille!!

    avevi ragione tu!! in pratica la funzione mi chiudeva la connessione, probabilmente effettuava un commit implicito...

    grazie ancora.
    ciao

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.