login  Naam:   Wachtwoord: 
Registreer je!
 Showcase:

ShowcaseOverige >  PDO-MySQL Database Class

Gegevens:
Gepost door:
walldorff
URL:
http://rjm.be/dropzone...
Hits:
1729
18 +:
Nee
Aantal stemmen:
0
 Huidige score:
50

Sitemeter:
(50)

Beschrijving website:

Een database class als extensie van PDO voor mysql. Uiteraard plaats ik deze op de site in het public domain, maar ik leg de code graag eerst even aan de overige experts onder jullie voor.

Dank aan Psycho, die me op het spoor van PDO bracht. Zie zijn opmerkingen; deze hebben (uiteraard) GEEN betrekking op de huidige code, maar op de vorige, die door deze code inmiddels is vervangen.

Het stelt niet zoveel voor, het is een kleine uitbreiding met functies, die het coderen van database handelingen in andere scripts gewoon wat makkelijker maken. Een soort wrapper ofzo.

Er zit geen custom exeption handler in; fouten worden wel ge-echoed, maar dit is slechts voor testdoeleinden.
Wie er even naar wil kijken is welkom natuurlijk. Graag commentaar en verbeteringen.

PHP-code

Alvast bedankt. 

Roland


Pagina:

Offline  Ibrahim
Gepost op: 14 juni 2008 - 21:59
PHP expert



Mag ik vragen wat er mis is met de huidige mysql functies ?

Als dit nou een class was zoals PDO... Ik vind dit niet echt handig.

Offline  walldorff
Gepost op: 15 juni 2008 - 15:11
Nieuw lid



Niks mis met de mysql functie, maar ik vind dat je met deze class een schonere code hebt, die ook goed is te onderhouden. Dat is toch de bedoeling van OOP. Voorbeeld:

  1. <?php
  2. if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
  3. echo 'Could not connect to mysql';
  4. }
  5. if (!mysql_select_db('mysql_dbname', $link)) {
  6. echo 'Could not select database';
  7. }
  8. $sql = 'SELECT foo FROM bar WHERE id = 42';
  9. $result = mysql_query($sql, $link);
  10. if (!$result) {
  11. echo "DB Error, could not query the database\n";
  12. echo 'MySQL Error: ' . mysql_error();
  13. }
  14. while ($row = mysql_fetch_assoc($result)) {
  15. echo $row['foo'];
  16. }
  17. ?>


wordt:

  1. <?php
  2. include '../mijncms/inc.class.db.php';
  3. $oDb = new dbSet();
  4. if ($oDb->dbSelect('bar', 'foo','id = 42')) {
  5. while($row = $oDb->dbRecord()) {
  6. echo $row['foo'];
  7. }
  8. }
  9. ?>


12 regels minder code. Of iemand dat handig vindt moet hij voor zichzelf uitmaken. Ik post het, en als je het kunt gebruiken, be my guest.

Overigens was mijn vraag of iemand er verbeteringen in ziet. Niet of het al of niet handig is; da's namelijk een heel andere discussie.

Roland

Offline  Stijn
Gepost op: 16 juni 2008 - 19:24
PHP expert



Je moet een onderscheiding maken tussen connectie en tabel.

  1. $con = new DB(..);
  2. $table = $con->getTable('tabel');
  3. $table->fetchAll();


fetchAll() geeft dan een recordset terug en moet ik geen while lus gebruiken of dergelijk. Sommige stukken zitten niet goed in elkaar, maw het is een zooi'tje.

Offline  Ibrahim
Gepost op: 17 juni 2008 - 00:48
PHP expert



In mijn reactie heb ik aangegeven wat de verbetering kan zijn: meer in de richting van PDO 

Offline  walldorff
Gepost op: 19 juni 2008 - 18:26
Nieuw lid



@Psycho: Ok, dank je PDO ken ik niet, ben nog niet zo gek lang bezig in PHP. Bovendien al wat ouder (56 jaar) en dan gaat het leren wat langzamer ;)

@Stijn: Moet ik in een recordset niet altijd met een while lus doorheen om de afzonderlijke records te processen (met fetch_array/fetch_object)?
Als ik je voorbeeld goed begrijp:
- new DB geeft een connectie naar de database terug
- wat voor object returnt getTable?
- fetchAll geeft een recordset uit een SELECT statement?

edit:
Forget it, sorry. Ben er nu een beetje achter  

Offline  walldorff
Gepost op: 03 juli 2008 - 14:29
Nieuw lid



Ok, met dank aan Psycho heb ik hier de nieuwe class gepost.

Offline  Stijn
Gepost op: 03 juli 2008 - 19:19
PHP expert



1) Maak je eigen error class en gooi die als bij een fout. Jij moet de afhandeling niet doen.

2) Deze class is gemaakt met een code voorbeeld. Je zegt dat die class zo moet werken (zie <code> in je commentaar) maar da's niet OOP. Je bouwt een class naargelang zijn eigenschappen en zijn functie.

Offline  walldorff
Gepost op: 07 juli 2008 - 12:26
Nieuw lid



Citaat:
1) Maak je eigen error class en gooi die als bij een fout. Jij moet de afhandeling niet doen.

Ja ok, ga ik maken.

Citaat:
2) Deze class is gemaakt met een code voorbeeld. Je zegt dat die class zo moet werken (zie <code> in je commentaar) maar da's niet OOP. Je bouwt een class naargelang zijn eigenschappen en zijn functie.

Ok dank je. Moet nog veel leren van OOP  

Pagina:
Posten van een reactie is niet mogelijk.

 Bekijk:

 Laatste toevoegingen :
[13-01] World of Captai...
[20-08] Eerste website
[19-07] PatrolServer - ...
[15-01] Schaken
[23-09] umuziek
[05-07] AdvertentiePlek
[17-04] Ingangsexamen G...
[25-01] seventie
[20-07] Finactum
[18-05] sopularity
© 2002-2021 Sitemasters.be - Regels - Laadtijd: 0.145s