Inloggen
Username:
Password:



Password vergeten?
Menu
Home
Forums
Wiki
Script Library
Forum tracker
RSS Feed
Sponsoren
Vacature plaatsen

Aanmelden
Huisregels
Vereniging

Adverteren
Disclaimer
Zoeken

In:
Aantal leden
PHPFreakz kent momenteel 50394 geregistreerde leden.
Opties
Printversie
Dataobjecten
Dataobjecten
door Tri Pham

Veel PHP scripts worden in combinaties met een back-end database geschreven zoals het populaire MySQL en PostgreSQL. Na zelf wat projecten hebben geschreven merk dat je steeds dezelfde queries uitvoert. Soms begin je dan queries te knippen en plakken. Het zijn altijd dezelfde queries: SELECT, INSERT, UPDATE en DELETE. We gebruiken in dit artikel de nieuwste PHP 5 versie en MySQL.

In dit artikel ga ik database tabellen abstract maken. Dit doen we met data objecten. Dit is een design pattern overgenomen van J2EE, meer informatie is hier [1] te lezen. We zullen het versimpelen en implementeren in PHP, wat gelukkig niet zo moeilijk is. Kennis van OOP en SQL is een vereiste. "Design pattern? Wat is dat nou weer?" Het is een 'fancy' woord voor een programmeertechniek. Telkens komen bij het programmeren bepaalde patronen (lees: problemen) terug. Om niet de hele tijd het wiel opnieuw uit te vinden, zijn er 'standaard' oplossingen voor deze patronen. Enkele bekende design patterns zijn Model-View-Controller (MVC), singleton en factory pattern.

Een data object is simpelweg een class dat jouw database tabel moet voorstellen. De properties in je class zijn ook de velden in je tabel. We gaan de SQL taal vertalen in PHP code. Klinkt spannend he? Als voorbeeld hebben we een klanten tabel.

CREATE TABLE `klanten` (
`id` INT( 1 ) NOT NULL AUTO_INCREMENT,
`email` VARCHAR( 255 ) NOT NULL,
`naam` VARCHAR( 255 ) NOT NULL,
`adres` VARCHAR( 255 ) NOT NULL,
`postcode` VARCHAR( 8 ) NOT NULL,
`woonplaats` VARCHAR( 255 ) NOT NULL,
PRIMARY KEY ( `id` )
);

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Volgende »

Commentaar op dit artikel
TitelDoorDatum
RE: Slecht Mark Kazemier (Verenigingslid) 10-03-2008 09:53
Slecht Andre Gerritsen 03-02-2008 18:06
Velden als objecten? Of toch in één object? Edward Brüheim (Verenigingslid) 06-08-2007 10:28
RE: Joints :-) rudie dirkx 05-02-2007 16:25
RE: RE: exceptions rudie dirkx 05-02-2007 16:04
public vars declareren (ook) dynamisch maken? Bastiaan Kortenbout 05-09-2006 10:04
RE: exceptions aargh en gadverdamme Ruud A (Verenigingslid) 30-08-2006 09:18
Joints :-) Jan Koehoorn 13-08-2006 10:43
exceptions aargh en gadverdamme rudie dirkx 07-08-2006 14:31
Zeer goed nemesis koen 06-03-2006 18:14
Velden Uit Db halen Pietej Bel 19-01-2006 21:12
Goed begin Sijmen Ruwhof - Secundity.com (Verenigingslid) 03-01-2006 00:57
RE: RE: roonaan Roönaän .nl 16-11-2005 09:39
Nice Thomas Thalen 15-11-2005 20:31
RE: roonaan Ruud A (Verenigingslid) 07-11-2005 07:56
RE: Mark Ruud A (Verenigingslid) 07-11-2005 07:48
RE: RE: roonaan Roönaän .nl 06-11-2005 14:10
RE: RE: roonaan Mark Kazemier (Verenigingslid) 06-11-2005 11:41
RE: roonaan Ruud A (Verenigingslid) 04-11-2005 07:40
re: Roönaän .nl 03-11-2005 18:28
Been there, done that :) Maurice Hendriks 02-11-2005 17:37
Interessant Huiz   28-10-2005 19:10
Leuke aanpak T. H. 28-10-2005 15:38
Erg goed gedaan! Remco van Arkelen (Verenigingslid) 26-10-2005 08:18
RE: Leuk! Mark Kazemier (Verenigingslid) 26-10-2005 08:15
re Vincent Kleijnendorst (Verenigingslid) 25-10-2005 17:25
exit(); break; nemesis koen 25-10-2005 17:02
Leuk! Ruud A (Verenigingslid) 25-10-2005 11:49
Recente topics
Website layout hu...
selecteer tekst t...
Weergaven form in...
Website Hulp gezocht
Refresh na invoeren.
Weeknummers selec...
jquery table sort...
Meerdere menu's i...
jQuery slide content
HTML SELECT met 2...
TCPDF geeft é nie...
session_id(); > b...
Nieuwe regel
Variabele analyseren
heleboel foutmeld...
Recente Wiki's
JavaScript: High Performance
MagicQuotes
Escapen
Datamanipulatie
RabbitVCS
Continuous integration
Apache Veilig Maken
Charactersets
Het Wiel Uitgevonden:Formulieren
XSD

Meer wiki ...
Recente Scripts
Unieke `random` n...
twitterPHP 0.1 (a...
CSS minifier
PINI - PHP >>INI<...
Sudoku [StateSolver]
base64 file encoder
Session class

Meer scripts ...
Gehost door
RedKnot Hosting