• User

    Gestire errori database

    Salve a tutti vorrei sapere se è possibile gestire gli errori del database.

    Mi spiego meglio, ho creato nel mio database una tabella utente con 3 campi : username che è chiave primaria, password e email che ho impostato unica [unique(email)].

    Poi ho creato una pagina per la registrazione di utenti dove un qualsiasi utente connesso inserisce i 3 campi (username,password,email) e se questi sono corretti avviene la registrazione.

    Dunque prima di effettuare la registrazione il php vede anche i possibili errori in particolare se username e email sono già presenti nel database.
    Io però non vorrei verificare se l'username e l'e-mail che l'utente ha inserito sono già presenti attraverso una select, ma vorrei farlo attraverso l'errore che il database restituisce in caso l'utente immette un username o un e-mail già esistenti.

    Quindi vorrei sapere come si fa a gestire gli errori del database e spero che dopo la lunga premessa sia chiaro cosa intendo :bigsmile:


  • User

    Ma perchè nessuno risponde? :mmm:
    è perchè non mi sono spiegato bene, avete capito il mio problema?
    Dai please, ho bisogno di una rispsta :crying:....
    ricordatevi che l'aspetto con ansia :sbav:


  • User Attivo

    Ciao,
    premesso che è sempre meglio fare i controlli prima e non tentare l'inserimento attendendo l'eventuale errore,
    le funzioni **mysql_error() **e mysql_errno(), ti consentono di verificare la presenza di errori nell'ultima query eseguita.

    Alessandro


  • User

    Posso chiederti per quale motivo è sempre meglio fare i controlli prima?
    Per quale motivo uno dovrebbè utilizzare due quary in più solo per vedere se l'username e l'e-mail sono già presenti. invece se uno gestisce gli errori facciamo fare questo lavoro al database, altrimenti che serve mettere un attributo chiave primaria se puoi li filtriamo noi gli attributi che devono arrivare al database?
    Cmq mi potresti fare un' esempio di queste due funzioni xkè non ho capito bene come usarle.
    Grazie per il tuo aiuto :smile5:


  • User Attivo

    Ciao,
    fare i controlli prima di tentare l'inserimento ti permette di sapere con maggiore semplicità qual è il dato errato per, ad esempio, segnalarlo all'utente.
    Utilizzando mysql_error() o mysql_errno() ed analizzando l'errore generato hai la possibilità di fare "quasi" altrettanto, ma è meno sicuro e meno semplice.
    In genere uso mysql_error() per gestire errori "eccezionali" (soprattuto nella fase iniziale di sviluppo) che non ho previsto di controllare prima dell'esecuzione della query.

    L'utilizzo delle due funzioni è semplice:
    [PHP]
    $risultato=@mysql_query("Qui la tua query");
    if ($errore=mysql_error())
    {
    //Gestione errore
    }
    else
    {
    //Nessun errore
    }
    [/PHP]
    Stesso codice per mysql_errno()

    Alessandro


  • User

    Ok grazie per il tuo aiuto.
    Ora farò un po' di pratica :wink3: