login  Naam:   Wachtwoord: 
Registreer je!
 Forum

MySQL class

Offline Frederic - 03/10/2005 20:37
Avatar van FredericPHP ver gevorderde Zou iemand zo vriendelijk willen zijn me een linkje te bezorgen naar een fatsoenlijke tutorial (vond er op SiMa geen enkele hierover) waarin ik kan leren hoe een MySQL class te maken? Want als ik dat heb is het mogelijk het aantal querys te tellen, iets wat ik nodig heb voor statistieken... etc 

Thanks!

6 antwoorden

Gesponsorde links
Offline Thomas - 03/10/2005 21:30
Avatar van Thomas Moderator Dat kun je zonder class ook.
Offline Frederic - 03/10/2005 21:32
Avatar van Frederic PHP ver gevorderde Oeeh, nu wordt het interessant Hoe?
Offline DRUNK - 03/10/2005 22:04
Avatar van DRUNK PHP gevorderde Je kunt een globale variabel bijhouden met het aantal query's, elke keer nadat je een query uitvoerd tel je er 1 bij op.

Hier nog en link naar een heeeeeel eenvoudige mysql class: http://dev.http-error.nl/MyMySQL.class.phps/
Het steld echt niets voor, maar het houd wel het aantal query's bij.
Offline Frederic - 06/10/2005 23:36
Avatar van Frederic PHP ver gevorderde Hmm, zou iemand me even kunnen helpen 
Stel ik heb de query
  1. $sql = mysql_query("SELECT * FROM bezoekers_paginabezoeken WHERE tijdstip >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) GROUP BY ip ORDER BY id DESC") or die(mysql_error());

, hoe moet ik dan die class gebruiken? (ben nog maar juist bezig met classes - OOP dus weet er nog niet alles van)
En dat tellertje dan? Want ik denk dat ik gewoon iedere keer bij een query $i++; moet doen? Waarin zit dan het voordeel (en het niet ge doen bij de gewone query die ik hierboven heb staan)
Offline nemesiskoen - 07/10/2005 08:02
Avatar van nemesiskoen Gouden medaille

PHP expert
  1. <?php
  2. $db = new MyMySQL('localhost', 'root', '*****');
  3. $db->SelectDB('Database');
  4. $db->Query("SELECT * FROM bezoekers_paginabezoeken WHERE tijdstip >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) GROUP BY ip ORDER BY id DESC");
  5.  
  6. while ($res = $db->Fetch()) {
  7. // weergeven van resultaten
  8. }
  9. echo "Er zijn ". $db->GetNumQuery() ." queries uitgevoerd.";
  10. ?>
Offline Thomas - 07/10/2005 19:31 (laatste wijziging 07/10/2005 19:31)
Avatar van Thomas Moderator Inspiratie - ik gebruik deze functie voor het uitvoeren van queries, en het loggen van mogelijke fouten:

  1. <?php
  2. function query($query, $fetch_method="assoc", $die=0, $log=1, $redirect=1) {
  3. global $cfg;
  4. // $cfg['mod'] = hoofdpagina waar je op zit
  5. // $cfg['sub'] = subpagina waar je op zit
  6.  
  7. $ret = array();
  8. $res = @mysql_query($query);
  9.  
  10. if(mysql_error() != "") {
  11. // error handling
  12. $err = array();
  13. $err[] = "INSERT INTO mysql_log(`date`, `mod`, `sub`, `err_no`, `err_text`, `query`) ";
  14. $err[] = "VALUES(";
  15. $err[] = time().", ";
  16. $err[] = "'".$cfg['mod']."', ";
  17. $err[] = "'".$cfg['sub']."', ";
  18. $err[] = mysql_errno().", "; // 999-1175
  19. // if mysql_errno is 0 this could indicatie wrong username/pass when connecting to or selecting db
  20. $err[] = "'".addslashes(htmlentities(mysql_error()))."', "; // possible javascript inserts
  21. $err[] = "'".addslashes(htmlentities($query))."'"; // for readability
  22. $err[] = ")";
  23.  
  24. // die?
  25. if($die) {
  26. die("<pre>".print_r($err, 1)."</pre>");
  27. }
  28.  
  29. // log?
  30. if($log) {
  31. @mysql_query(implode("", $err)); // assume this query DOES get executed correctly ;)
  32. }
  33.  
  34. // mail administrator or take some other action? use mysql_insert_id for the logged error
  35. // ...
  36.  
  37. // relocate to some neat errorpage?
  38. if($redirect) {
  39. header("Location: /index/error/database");
  40. }
  41. } else {
  42. // any results?
  43. if(mysql_num_rows($res)) {
  44. // fetch results
  45. switch($fetch_method) {
  46. // fetch row
  47. case "row":
  48. while($row = mysql_fetch_row($res)) $ret[] = $row;
  49. break;
  50. // fetch assoc - is also default
  51. case "assoc":
  52. default:
  53. while($row = mysql_fetch_assoc($res)) $ret[] = $row;
  54. }
  55.  
  56. // free results
  57. }
  58. }
  59.  
  60. // return results
  61. return $ret;
  62. }
  63. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.205s