login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Database tools > MySQL Error Handling

MySQL Error Handling

Auteur: Rens - 16 augustus 2005 - 00:20 - Gekeurd door: nemesiskoen - Hits: 4851 - Aantal punten: 3.00 (3 stemmen)



Er staat een voorbeeld onder het script en tussen het script door staan commentregels.
Als er nog vragen zijn, hoor ik het graag.

Code:
MySQL.ErrorHandling.php:
  1. <?PHP
  2. // functie starten
  3. function MySQL_Error_Report($sError, $iError, $sFile, $iLine, $sQuery="")
  4. {
  5. // Waar de functie aangeroepen word, is 3 lijnen meer dan waar de SQL query staat (zonder de commentregels meegeteld dan... )
  6. // vandaar de -3
  7. $iLine = ($iLine-3);
  8.  
  9. // het bestand openen
  10. if(!$rFile = fOpen("logs/mysql/logfile.log", "a+"))
  11. {
  12. // het bestand kan niet worden geopend
  13. // een error plaatsen in $sReturn
  14. $sReturn = "Error!- Kan het bestand niet openen!<br />";
  15. } else
  16. {
  17. // het bestand is geopend
  18. // we gaan nu de input samenstellen
  19.  
  20. // eerst een 'titel' waarin de datum en tijd staan
  21. $sInput = "-= MySQL Error op ".date("d-m-Y")." om ".date("H:i")." =-\n";
  22. // daarna de error van MySQL_Error()
  23. $sInput .= "Error: ".$sError."\n";
  24. // het nummer van de error
  25. // kan soms makkelijk zoeken op dev.mysql.com (vind ik)
  26. $sInput .= "Errnr: ".$iError."\n";
  27. // bestandsnaam
  28. // in dit bestand staat de query die de fout veroorzaakt
  29. $sInput .= "File : ".$sFile."\n";
  30. // het regelnummer
  31. // makkelijker zoeken
  32. $sInput .= "Regel: ".$iLine."\n";
  33.  
  34. // checken of de string lengte van $sQuery langer is dan 2
  35. // gedaan zodat je hem ook makkelijk kunt gebruiken bij MySQL_Connect() en MySQL_Select_DB()
  36. // hiervoor heb je immers geen $sQuery = ""; nodig
  37. if(IsSet($sQuery) && strLen($sQuery) > 2)
  38. {
  39. // de waarde van $sQuery is een query
  40. // dus we zetten de query ook bij de input
  41. $sInput .= "Query: ".$sQuery."\n";
  42. }
  43. // zorgen dat er de volgende keer op een nieuwe regel word begonnen
  44. $sInput .= "\n";
  45.  
  46. // de input in het bestand schrijven
  47. if(!fWrite($rFile, $sInput))
  48. {
  49. // er is een fout, en de input kan niet in het bestand worden geschreven
  50. $sReturn = "Error!- Kan de MySQL error niet naar het bestand schrijven!<br />";
  51. } else
  52. {
  53. // de input is succesvol in het bestand geschreven
  54.  
  55. // hieronder de melding die de gebruiker te zien krijgt
  56. // het zou eventueel ook een header() functie kunnen zijn
  57. // die de gebruiker naar een andere pagina stuurd
  58. $sReturn = "Er is een onverwachte database fout.<br />We zullen de fout z.s.m. oplossen.";
  59. }
  60. }
  61. // $sReturn teruggeven
  62. return $sReturn;
  63. }
  64. ?>


Voorbeeld:
  1. <?PHP
  2. // de functie includen
  3. include("MySQL.ErrorHandling.php");
  4.  
  5. // de query samenstellen
  6. $sQuery = "SELECT iets FROM tabel";
  7.  
  8. // kijken of we de query uit kunnen voeren
  9. if(!$rResult = MySQL_Query($sQuery))
  10. {
  11. // nee, er is een fout dus roepen we de functie aan
  12. // de waarden spreken voor zich lijkt me, maar toch even beetje uitleg
  13.  
  14. // MySQL_Error() = bevat de SQL error
  15. // MySQL_Errno() = bevat het nummer v.d. error
  16. // __FILE__ = bevat de bestandsnaam
  17. // __LINE__ = bevat het regelnummer
  18. // $sQuery = bevat de query (optioneel)
  19. echo MySQL_Error_Report(MySQL_Error(), MySQL_Errno(), __FILE__, __LINE__, $sQuery);
  20. } else
  21. {
  22. // de query is succesvol uitgevoerd
  23. echo "Uitgevoerd!";
  24. }
  25. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (4)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.039s