2012-05-14 12 views
5

Sto costruendo un sito utilizzando PHP che consente agli utenti di aggiungere molti dati a varie tabelle in un database MySQL. Ciò richiede un sacco di inserimento, aggiornamento e rilascio di tabelle nella mia base dati, a volte eseguendo diversi comandi in uno script.PHP MySQL Registrazione e gestione degli errori - best practice

Sono preoccupato di rilevare potenziali errori che si verificano durante la vita (l'ho provato, testato e testato ma desidero comunque un piano di backup).

Ho cercato dappertutto una soluzione ma non riesco a trovarne una che soddisfi le mie esigenze, quindi mi chiedevo se qualcuno avesse delle pratiche che usavano o consigliavano di darmi.

Quello che voglio che accada:

In caso di errore la connessione al database (per esempio) Voglio visualizzare una pagina o una finestra di avviso con un "mi dispiace che abbiamo avuto un problema" messaggio con un pulsante per registrare l'errore. Quando un utente fa clic sul pulsante, desidero essere in grado di registrare un mysql_error() nel database con una descrizione del comando/funzione non riuscita e il nome della pagina insieme al timestamp/data che posso tracciare.

È qualcosa che qualcuno ha già fatto o può offrire un'alternativa? O c'è una funzione integrata che fa esattamente questo che mi è sfuggito?

Qualsiasi consiglio sarebbe molto apprezzato.

+0

Dovrete provare/catturare gli errori mysql. La registrazione degli errori generici in PHP è generalmente supportata dalla maggior parte dei server Web. Genera semplicemente un file di registro di tutti gli errori PHP che vengono generati. – user17753

risposta

5

Se non si riesce a connettersi al DB, non sarà possibile registrare l'errore nel db. A parte il cattivo scenario di connessione, dovresti usare una libreria php mysql che supporti le eccezioni (come il PDO) e utilizzare i blocchi try-catch per catturare gli stati di errore che vuoi registrare.

Probabilmente vorrete solo scrivere nel log degli errori di apache sull'errore di connessione del DB (può essere fatto in un blocco try-catch).

Problemi correlati