Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    3

    [PHP] effettuare UNLOCK TABLES in php quando chiudo la pagina

    ciao a tutti,
    vorrei sapere se c'è un modo per eseguire il comando UNLOCK TABLES quando chiudo la finestra del browser.
    per intenderci, io carico la pagina php. viene subito eseguito il comando LOCK TABLES.
    ora, se io non porto a termine le operazioni sul db e chiudo la pagina, mi restano le tabelle bloccate. se accedo con un altro utente al db non riesco a lavorare.
    confido nel vostro aiuto.
    grazie a tutti!

  2. #2
    Potresti provare utilizzando in maniera adeguata le funzioni ignore_user_abort() e connection_status().

    Dai un'occhiata qui: ignore_user_abort()

    Comunque domani proverò a cercare tra qualche mio vecchio script: avevo utilizzato qualcosa di simile in passato...
    Michele
    King Of The Kill

  3. #3
    Ecco qui. Naturalmente è solo un esempio (simile ad uno che avevo trovato in rete). Dovrai modificare le azioni da compiere e i vari cicli, ma dovrebbe/potrebbe funzionare...
    Io l'avevo elaborato in maniera pesante, ma alla fine mi ha dato soddisfazioni.

    Codice PHP:
    <?php
    ob_implicit_flush
    (); # abilita il "flush" automatico
    set_time_limit(0);  # imposta il limite massimo di lavoro dello script ad "infinito" (in teoria)
    ignore_user_abort(true); # forzerà lo script a girare anche al termine della connessione

    function doSomething() {
        
    $file 'test.txt';
        
        
    # azione iniziale
        
    @file_put_contents($file'start test');
        
        while(!
    connection_aborted()) {
            
    # stampiamo a video qualcosa così PHP "capisce" se la connessione col browser è ancora in corso
            
    echo " ";
            
    # ora PHP verifica la connessione
            # flush(); # decommentare nel caso ob_implicit_flush() non funzionasse come dovrebbe
            # pausa di un secondo prima della ripetizione del ciclo
            
    sleep(1);
        }

        
    # questa operazione verrà effettuata soltanto quando la connessione col browser non sarà più attiva
        
    @file_put_contents($file'end test');
        return 
    true;
    }

    doSomething();
    ?>
    Michele
    King Of The Kill

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    3
    grazie mille! mi sei stato davvero d'aiuto!
    erano giorni che mi aggrappavo sugli specchi
    ho risolto perfettamente il mio problema con il metodo che hai postato tu.
    si è adattato perfettamente alla mia situazione.
    grazie mille ancora!


  5. #5
    Figurati!
    Michele
    King Of The Kill

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