login  Naam:   Wachtwoord: 
Registreer je!
 Nota's op tutorial:

Tutorials > MySQL > MySQL Error Handling
Pagina:

Reacties op de tutorial MySQL Error Handling


Offline  Wave6
Gepost op: 08 februari 2007 - 10:13
PHP beginner

Netjes gedaan deze tutorial. Maar er zijn zo veel verschillende soorten fouten dus van posts op het forum zul je toch wel krijgen.
Maar verder geen kritiek.:D

Offline  marten
Gepost op: 11 februari 2007 - 14:50
Beheerder

Bedankt voor het artikel maar waarom schrijf je een tutorial hierover in PHP4? Ik mis PHP 5 waar je veel meer mogelijkheden hiervoor hebt.

Offline  Thomas
Gepost op: 12 februari 2007 - 15:35
Moderator

Hm, ik zou dit toch echt anders doen.

Als je de volgende riedel een stuk of 10 (of meer keer) in een script moet zetten:
  1. <?php
  2. $sQuery = "SELECT * FROM <tbl>";
  3. if(!$rResult = MySQL_Query($sQuery))
  4. {
  5. } else
  6. {
  7. // de rest van je script
  8. }
  9. ?>


Dan zou ik daar toch echt genoeg van hebben .

Ik zou een functie schrijven waarin de error-handling zit, bijvoorbeeld als volgt:

  1. <?php
  2. function query($query, $fetch="assoc")
  3. {
  4. global $cfg; // config array
  5. $die = $cfg['query']['die']; // die on error?
  6. $log = $cfg['query']['log']; // log errors?
  7. $redirect = $cfg['query']['redirect']; // redirect to error page?
  8.  
  9. $ret = array();
  10. $res = @mysql_query($query);
  11.  
  12. if(mysql_error() != "")
  13. {
  14. // error handling
  15. $err = array();
  16. $err[] = $cfg['mod']."/".$cfg['sub'];
  17. $err[] = mysql_errno(); // 999-1175
  18. $err[] = htmlentities(mysql_error()); // possible javascript inserts
  19. $err[] = htmlentities($query, ENT_QUOTES); // for readability
  20.  
  21. // die?
  22. if($die)
  23. {
  24. // dump $err
  25. // (testomgeving)
  26. }
  27.  
  28. // log?
  29. if($log)
  30. {
  31. // log error, b.v. mail naar webmasters
  32. }
  33.  
  34. // relocate?
  35. if($redirect)
  36. {
  37. // redirect naar nette errorpagina
  38. // (produktie-omgeving)
  39. }
  40. }
  41. else
  42. {
  43. // any results?
  44. if(mysql_num_rows($res))
  45. {
  46. // fetch results
  47. switch($fetch)
  48. {
  49. // fetch row
  50. case "row":
  51. while($row = mysql_fetch_row($res)) $ret[] = $row;
  52. break;
  53. // fetch assoc - is also default
  54. case "assoc":
  55. default:
  56. while($row = mysql_fetch_assoc($res)) $ret[] = $row;
  57. }
  58.  
  59. // free results
  60. }
  61. }
  62.  
  63. // return results
  64. return $ret;
  65. }
  66. ?>


Het uitvoeren van een query kan dan met de simpele opdracht query(<SQL>) en de afhandeling ervan (fetch/die/log/redirect) worden bepaald door de implementatie van je query-functie.

Offline  dotPixel
Gepost op: 15 februari 2007 - 14:53
PHP interesse

Citaat:
[I][B]marten[/B] schreef op 11 februari 2007 - 14:50[/I]

Bedankt voor het artikel maar waarom schrijf je een tutorial hierover in PHP4? Ik mis PHP 5 waar je veel meer mogelijkheden hiervoor hebt.


I agree; http://nl3.php.net/exceptions

Offline  Assailant
Gepost op: 15 april 2007 - 22:29
Nieuw lid

moet je geen @ teken in de if gebruiken om de foutmelding eerst te onderdrukken?

Offline  Rens
Gepost op: 15 april 2007 - 22:44
Gouden medaille

Crew algemeen


Kun je doen.
Je kunt ook met error_handling(E_NONE); werken...

Pagina:

Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.046s