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

    Verificare se una tabella è stata modificata

    Salve. Sto costruendo il mio modulo per la gestione degli utenti. Ho appena finito il procedimento di registrazione e mi è sorto un dubbio. Prima vi posto il codice poi vi spiego il dubbio:

    Codice PHP:
    $query "UPDATE `user` SET `temp` = '1' WHERE `uid` = '$_GET[uid]' LIMIT 1";

    if (
    mysql_query($query))
      {
         
    $smarty->assign('message' 'Complimenti! Hai confermato la tua registrazione.
    Adesso puoi accedere al tuo account tramite il menu alla tua sinistra.'
    );
      }
    else
      {
         
    $smarty->assign('message' 'Siamo spiacenti ma la tua registrazione non può essere confermata.
    Può darsi che la tua registrazione sia stata cancellata perchè scaduta. Prova a ripetere la procedura di registrazione'
    );
      } 
    Il codice, come vedete, è molto semplice: una semplice query di aggiornamento.

    Come si vede per vedere se l'aggiornamento è andato a buon fine faccio un controllo sull'istruzione mysql_query ma non credo sia il modo giusto visto che restituisce cmq true, anche se non è stata aggiornata nessuna tabella. La domanda, quindi, è questa:
    come faccio a sapere se e quante tabelle sono state modificate? Io mi ricordo qualcosa tipo affected_rows o qualcosa del genere. Potreste darmi un indicazione a riguardo? Grazie mille! Ciao!

  2. #2

  3. #3
    infatti a differenza dalla linea di comando, per UPDATE, INSERT e DELETE mysql_query rende true o false a seconda se la query rende errore o meno. Mentre per le altre query rende un identificativo di risorsa.

    Quindi se vuoi essere certo di aver fatto la modifica devi contare le righe modificate, e per questo hai:

    mysql_affected_rows($connessione)

    Attenzione all'UPDATE perche' potrebbe dare una risposta subdula. Se la modifica da fare e' uguale al valore gia' esistente, NON aggiorna la tabella e rende zero righe modificate. Inoltre se ben avessi un timestamp in questo caso non verrebbe aggiornato.

    Ti dico questo perche' se fosse gia' per qualche ragione a 1 daresti una risposta negativa allo user.


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

  4. #4
    Mitico piero'mago dell'sql'.mac!
    Cmq nel caso che mi hai descritto mostrerei un messaggio all'utente che dice che non è stata confermata la registrazione perchè:

    scaduta
    già aggiornata

    Grazie ancora piero!!!

    Solo un dubbio: la variabile $connessione quale sarebbe?

  5. #5
    [supersaibal]Originariamente inviato da mircov
    Solo un dubbio: la variabile $connessione quale sarebbe? [/supersaibal]
    il link di connessione, la variabile che raccoglie il thread di connessione.

    $qualcosa = mysql_connect(ecc...

    Si puo' anche omettere, prenderebbe l'ultima connessione aperta come default, ma se la metti ti garantisci compatibilita' anche futura.

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

  6. #6
    Codice PHP:
    $db mysql_connect($_CONFIG['dataBase']['host'], $_CONFIG['dataBase']['user'], $_CONFIG['dataBase']['password']);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($_CONFIG['dataBase']['name'], $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); 
    Dovrei mettere $db giusto?

    Grazie mille Piero.mac! 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.