welke fetch mode?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Oracle Apex developer

Bedrijfsomschrijving My client is a technology company based in Den Bosch, the Netherlands. They specialize in providing innovative software solutions to clients, and they are currently looking for an experienced Oracle Apex developer to join the IT team. Functieomschrijving As an Oracle Apex developer, you will be responsible for designing, developing, and maintaining web-based applications using Oracle Apex. You will work closely with project managers, business analysts, and other developers to ensure that clients' needs are met and that the software solutions are of the highest quality. Responsibilities: Design, develop, and maintain Oracle Apex applications. Work with project managers and

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving Voor de gemeente Amsterdam zijn wij op zoek naar een softwareontwikkelaar Cleopatra. De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van brom- en snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie. Functie

Bekijk vacature »

Applicatie Ontwikkelaar

Bedrijfsomschrijving DUO verzorgt als uitvoeringsorganisatie, zijnde onderdeel van het Ministerie van Onderwijs, Cultuur en Wetenschap de uitvoering van complexe wet- en regelgeving en heeft een uitgebreid dienstenpakket. DUO financiert en informeert onderwijsdeelnemers en onderwijsinstellingen. Voor verdere informatie zie www.duo.nl Functieomschrijving Wie zoeken we? Jij bent een enthousiaste, flexibele OPS’er die het leuk vindt om het bestaande examenlandschap te vernieuwen. Je bent leergierig en hebt interesse in cloud- en containertechnieken zoals OpenShift, Docker en Helm. Je gaat een uitdaging niet uit de weg en wil je nieuw opgedane kennis graag delen met de collega’s binnen en buiten het team. Doordat de

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een gewaardeerde werkgever in regio Tilburg waar jij de tijd en ruimte krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je gaat projecten vanaf het begin tot het eind begeleiden. Je sluit aan bij meetings met klanten om hun processen in kaart te brengen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt

Bekijk vacature »

Senior pega developer

You work on software that makes colleagues and customers happy! Thanks to your IT skills, De Mandemakers Groep really makes a difference for its customers. Do coding, testing and deployments make your heart beat faster? Then apply today as Senior Pega Developer at De Mandemakers Groep! Wat ga je doen? The job title gives it away: You will be developing Pega software. This ranges from technical design, coding and testing to test automation, deployments and bug fixing. Your goal is to continuously improve our systems so that colleagues can work efficiently and customers receive optimal service. You don't have to

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

Lead React Developer

Dit ga je doen Als Lead React Developer zul jij je voornamelijk gaan bezighouden met: Het werken aan tal van uiteenlopende projecten waar gloednieuwe (web)applicaties van scratch af aan ontwikkeld worden met o.a. React (Native) en Drupal; Het aansturen van een team bestaande uit 5-6 talentvolle en gedreven ontwikkelaars; Het adviseren en meedenken over nieuwe (technische) oplossingen en te gebruiken tools/frameworks; Het meedenken over de architectuur en de juiste implementatiebeslissingen maken; De doorontwikkeling van huidige applicaties. Hier ga je werken Als je inderdaad een ervaren Lead React Developer bent die zichzelf graag nog verder wil ontwikkelen dan is het goed

Bekijk vacature »

Medior PHP developer

Functie Samen met je development team werk je Agile Scrum en met jullie gezamenlijke kennis en ervaring bepalen jullie samen de beste keuze voor techniek en architectuur. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en denkniveau • Je hebt goede kennis en ervaring met PHP • Je bent niet bang voor complexe projecten • Je werkt graag zelfstandig aan applicaties • Je bent altijd nieuwsgierig naar nieuwe

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Software Ontwikkelaar PHP gezocht! Wij zijn op zoek naar een ervaren PHP Software Ontwikkelaar om het team van onze opdrachtgever te versterken! De ideale kandidaat zal fungeren als verlengstuk van klanten en complexe technische vraagstukken met enthousiasme benaderen. Naast het werken met de nieuwste technologieën, ben je in staat om aan meerdere projecten tegelijkertijd te werken. Als je deze uitdaging aangaat, werk je nauw samen met front-end developers en draag je bij aan het realiseren van grote veranderingen bij klanten. Het bedrijf zoekt iemand die zichzelf graag uitdaagt en altijd streeft naar het leveren van de beste resultaten.

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Pagina: 1 2 3 volgende »

Ozzie PHP

Ozzie PHP

23/05/2013 03:03:38
Quote Anchor link
Welke van deze fetch modes gebruiken jullie eigenlijk het meest (en waarom)?

http://php.net/manual/en/pdostatement.fetch.php
 
PHP hulp

PHP hulp

09/01/2025 13:14:27
 
Wouter J

Wouter J

23/05/2013 08:14:30
Quote Anchor link
ASSOC, andere zorgen imo voor te grote arrays en daardoor traagheid. CLASS, INTO en OBJ zijn welliswaar heel vet, maar dat wil ik zelf kunnen doen.

En de rest: BOUND vind ik alleen maar nutteloos. NUM is handig als je met for loops moet werken en BOTH is handig als je zowel met for loops moet werken als met het normaal opvragen van data.
 
Ozzie PHP

Ozzie PHP

23/05/2013 14:02:43
Quote Anchor link
Wouter, dankjewel voor je reactie!

1) Wat bedoel jij met "... maar dat wil ik zelf kunnen doen." ?


"NUM is handig als je met for loops moet werken"

2) In welk opzicht is het bij for-loops handiger dan ASSOC? (ASSOC werkt toch ook in for-loops?)


Waarom ik de vraag stel... ik ben bezig met m'n database class en ik wil een fetchRow/getRow method maken, maar ik vraag me af ik dus meerdere varianten daarvan zal maken, bijv. getAssocRow of getNumRow. Ik vermoed ook dat ik ASSOC het meest zal gebruiken en dus is het wellicht handiger om maar 1 method getRow te maken die dan de ASSOC methode gebruikt.

3) Wat vind jij?
 
Donny Wie weet

Donny Wie weet

23/05/2013 14:06:02
Quote Anchor link
FETCH_ASSOC, is ook de meest gebruikte volgens mij?
 
Erwin H

Erwin H

23/05/2013 14:17:16
Quote Anchor link
Ozzie PHP op 23/05/2013 14:02:43:
Waarom ik de vraag stel... ik ben bezig met m'n database class en ik wil een fetchRow/getRow method maken, maar ik vraag me af ik dus meerdere varianten daarvan zal maken, bijv. getAssocRow of getNumRow. Ik vermoed ook dat ik ASSOC het meest zal gebruiken en dus is het wellicht handiger om maar 1 method getRow te maken die dan de ASSOC methode gebruikt.

Je zal ASSOC mogelijk het vaakst gebruiken, maar waarom zou je het daarom beperken? Die verschillende fetch methodes zijn er niet voor niets, blijkbaar zijn de andere af en toe dus ook handig. Als je het nu gaat beperken en later toch nog nodig hebt dan kost het je meer werk om het aan te passen dan het nu te doen. Wat ik wel zou doen, is ASSOC de standaard maken (in plaats van BOTH zoals in PDO). Dus als er geen methode wordt opgegeven via bijvoorbeeld een property, dan gebruik je gewoon ASSOC, anders de opgegeven methode.
 
Ozzie PHP

Ozzie PHP

23/05/2013 14:28:26
Quote Anchor link
Erwin, ik bedoel meer hoe ik dan de method zal noemen. De fetch wijze meegeven via een property vind ik best tricky (dan moet ik telkens kijken wat ook alweer de juiste naam was). Maar ik zou bijv. kunnen doen getAssocRow en getNumRow. Waar ik dan even over twijfel is... stel dat ik altijd de ASSOC methode gebruik dan zou ik het ook gewoon getRow kunnen noemen (is wat korter), maar wat jij zegt is ook wel een goed punt... want wat als je inderdaad een keer een andere fetch wijze wil gebruiken?

Gebruiken jullie trouwens get of fetch als je iets uit de database haalt? Dus getAssocRow of fetchAssocRow?
 
Erwin H

Erwin H

23/05/2013 14:40:29
Quote Anchor link
Ozzie PHP op 23/05/2013 14:28:26:
De fetch wijze meegeven via een property vind ik best tricky (dan moet ik telkens kijken wat ook alweer de juiste naam was).

Daar heb je constantes voor zodat je het via de code completion altijd goed hebt.

Ik heb in mijn database class vier verschillende methodes die een query uitvoeren en de resultaten daarvan opslaan in een property wat dan later weer kan wordern uitgelezen. Data ophalen is dan met 'getResults()'.
 
Ozzie PHP

Ozzie PHP

23/05/2013 14:54:39
Quote Anchor link
Ah, oké. Via constants. Daar had ik nog niet aan gedacht. Je bedoelt dan zoiets?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
public function getRow($fetch_mode = FETCH_ASSOC) {
  // ...
}
?>


"Ik heb in mijn database class vier verschillende methodes die een query uitvoeren en de resultaten daarvan opslaan in een property wat dan later weer kan wordern uitgelezen. Data ophalen is dan met 'getResults()'."

Hoe moet ik me dit voorstellen? Ik zou zelf zoiets doen:

- $sql = 'bla bla';
- execute($sql);
- $row = getRow();

In $row zitten dan de gegevens uit de database.

Maar jij zou dan zoiets doen? (Of begrijp ik je niet goed?)

- $sql = 'bla bla';
- execute($sql);
- fetchRow();
- $row = getResults();
 
Erwin H

Erwin H

23/05/2013 15:13:24
Quote Anchor link
Deze vier methodes zitten niet in dezelfde class natuurlijk:
- $sql = 'bla bla';
- execute($sql);
- fetchRow();
- $row = getResults();

De database class zal niet verantwoordelijk zijn voor de query die moet worden uitgevoerd en zal verder ook niets met de resultaten doen.

Als je het opbreekt krijg je dus
- query class -> stelt query op
- query class -> geeft query aan database class
- database class -> voert query uit
- database class -> haalt resultaten op en slaat het op in een property van de database class
- query class (of de class die de query class aanroept) -> haalt resultaten op uit de database class

De reden waarom ik vier verschillende methodes heb om de queries uit te voeren is omdat niet elke query op dezelfde manier resultaten oplevert:
- queries die geen resultaten opleveren (INSERT, UPDATE, DELETE)
- queries die 1 rij opleveren
- queries die meerdere rijen opleveren
- queries die meerdere rijen opleveren maar die met een LIMIT en SQL_CALC_FOUND_ROWS zijn uitgevoerd

In principe kan je 2 en 3 wel samen doen, ik heb ervoor gekozen ze te splitsen omdat je dan de eerste met een PDO::fetch kan doen en de tweede met een PDO::fetch_all. Zelfs al zou de query die 1 rij terug wil hebben er meer krijgt, er wordt er dan maar 1 opgehaald.
Gewijzigd op 23/05/2013 15:14:26 door Erwin H
 
Ozzie PHP

Ozzie PHP

23/05/2013 15:21:37
Quote Anchor link
Ah oké, mijn opzet is iets anders. Ik stop wel alles in 1 class omdat ik het als een service heb ingesteld. Ik roep dan die service aan een die maakt automatisch een database connectie (eenmalig). Aan die service geef ik m'n slq query door en uit die service haal ik ook het resultaat op. Ik stop het resultaat echter niet in een property. Schematisch moet het dan zoiets worden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$db
= $services->get('db'); // ik kan hier ingeven welke db ik wil hebben
$db->setSql('SELECT...);
$row = $db->getRow();
?>
 
Erwin H

Erwin H

23/05/2013 15:34:14
Quote Anchor link
Het enige dat je dan anders hebt is dat niet de database class, maar de aanroepende class de while loop moet gaan bouwen om alle rijen uit te lezen. Dat had ik ook ooit eens, tot ik me bedacht dat ik gewoon elke keer weer die while loop aan het bouwen was. Daar had ik geen zin meer in en dus heb ik dat verplaatst naar de database class. Als je dat doet kan je dus ook meteen alles uitlezen met PDO::fetch_all en heb je helemaal geen loop meer nodig. Uiteindelijk vind ik dat een veel betere optie, omdat ik toch nooit tijdens het uitlezen van de gegevens al iets met de data doe. Pas in de view wordt de data behandeld.

Een andere reden om het niet te doen zoals jij nu wil gaan doen is dat je moeilijk moet gaan voor de queries met een LIMIT. Als je namelijk het aantal berekende rijen wilt ophalen moet een je nog een query uitvoeren (SELECT FOUND_ROWS()). Die kan je pas doen nadat je de data van de oorspronkelijke query hebt gefetched, anders ben je die data kwijt. Met andere woorden, je krijgt deze stappen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$db
= $services->get('db');
$db->setSql('SELECT...);
while ( $db->hasNext() ){
  $row = $db->getRow();
  //doe iets met $row
}
$num = $db->getCalcRowNum();
?>

Terwijl als je alles in 1 keer doet krijg je dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$db
= $services->get('db');
$db->setSql('SELECT...);
$data = $db->DBcall_fetch_limit();
?>

En in data zit dan een array met als eerste element het aantal berekende rijen en daarna alle rijen. Omdat ik lui ben prefereer ik de tweede :-)
 
Ozzie PHP

Ozzie PHP

23/05/2013 15:41:58
Quote Anchor link
"Het enige dat je dan anders hebt is dat niet de database class, maar de aanroepende class de while loop moet gaan bouwen om alle rijen uit te lezen."

Uh... je kunt toch alle rijen in 1x ophalen met PDO fetchAll? Dan heb ik toch geen while loop nodig?

Even voor de duidelijkheid. Ik heb dus 1 database class en dit is een specifieke PDO MySQL class. Dus alles in die class is gebaseerd op PDO MySQL. Stel nu dat ik ooit een andere database wil gebruiken dan zou ik dus een nieuwe class daarvoor maken. In mijn service hoef ik dan alleen de class naam te wijzigen. (Via een interface stel ik overigens een aantal verplichte methods in.)
 
Erwin H

Erwin H

23/05/2013 15:53:23
Quote Anchor link
Ozzie PHP op 23/05/2013 15:41:58:
Uh... je kunt toch alle rijen in 1x ophalen met PDO fetchAll? Dan heb ik toch geen while loop nodig?

Absoluut, alleen omdat je de methode 'getRow()' noemde ging ik ervanuit dat je rijen 1 voor 1 op wilde halen. Haal je alles op dan verwacht ik de naam 'getRows()'. Anders dan dat zijn we het denk ik wel helemaal met elkaar eens.
 
Ozzie PHP

Ozzie PHP

23/05/2013 15:55:29
Quote Anchor link
Ah oke... getRow haalt inderdaad 1 rij op en getRows die haalt er meerdere op :)

Klopte dit voorbeeldje trouwens? Was dit hoe jij het bedoelde?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
public function getRow($fetch_mode = FETCH_ASSOC) {
  // ...
}
?>
 
Erwin H

Erwin H

23/05/2013 16:04:48
Quote Anchor link
Ja, bijvoorbeeld.
Ik had weer niet gedacht aan de PDO parameters (waar je overigens PDO::FETCH_ASSOC voor moet hebben, niet FETCH_ASSOC), maar die kan je inderdaad direct gebruiken. Meestal definieer ik mijn eigen parameters als class constants (eventueel in een abstracte class alleen bedoeld voor constantes), maar in dit geval zijn die PDO constants afdoende uiteraard.
 
Ozzie PHP

Ozzie PHP

23/05/2013 16:10:14
Quote Anchor link
Ja, dat klopt... alleen ik zit even te denken hoe je dat handig zou kunnen aanpakken. Sowieso vind ik het idee van constants een goede. Maar stel ik zou ooit van database veranderen en heb dan ergens in mijn code dit staan:

$row = $db->getRow(PDO::FETCH_ASSOC);

Dan gaat het mis. Het mooiste zou dus zijn om een algemene FETCH_ASSOC te hebben... en die dan misschien matchen met een class constant ofzo?
 
Erwin H

Erwin H

23/05/2013 16:20:43
Quote Anchor link
Dan kan je dus zelf je constantes definieren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
abstract class Ozzie_Fetch(
  const ASSOC = 0;
  const NUM = 1;
  const BOTH = 2;
  const INVERTED = 3;
  const DOWNUNDER = 4;
);

?>

Deze kan je altijd gebruiken en als een database een hele speciale heeft dan kan je die toevoegen, zolang je altijd meer een default hebt gedefinieerd in de andere database classes is dat geen punt. Die gaan dan gewoon terug naar de default.
 
Ozzie PHP

Ozzie PHP

23/05/2013 16:27:44
Quote Anchor link
Oké thanks... maar waar haal jij nu die getallen vandaan?

Ik dacht zelf om bijv. in de PDO MySQL class zulke constants op te nemen:

cons ASSOC = PDO::FETCH_ASSOC;

En dan zou ik dus dit kunnen doen:

$row = $db->getRow('ASSOC');

Trouwens nog iets super irritants. Dat met die defines gaat niet werken. Dat leek me dus super handig omdat ik me dan niet kan "vertypen". Maar ik heb mijn defines dus in een config bestandje staan en ze worden dan met een foreach loop ge-defined. Met als gevolg dat mijn editor ze dus niet herkent. Grrrrr...
 
Erwin H

Erwin H

23/05/2013 16:39:54
Quote Anchor link
Als je dit doet:
cons ASSOC = PDO::FETCH_ASSOC;
dan zit je alsnog gebonden aan de PDO constanten. Dan kan je net zo goed die direct gebruiken.

Ik gebruik getallen omdat het gebruik van constanten in feite niets anders is dan een makkelijke naam geven aan iets dat anders moeilijk te onthouden is (denk aan pi, ik ken pi, maar voorbij 3,14 ken ik het getal echt niet). De waardes die je er in dit geval aan geeft zijn puur jouw keuze. Voor de compiler maakt het niets uit, en voor jou ook niet omdat je nooit met de getallen gaat werken, maar met de namen.

Alleen je laatste stukje begrijp ik niet helemaal. Een define is iets anders dan een class constant. Je kan het natuurlijk ook met defines doen, maar ik prefereer class constants omdat je dan de groep eenvoudig bij elkaar kunt houden, de classname al als prefix fungeert en het sneller schijnt te zijn (zelf nooit getest).
 
Ozzie PHP

Ozzie PHP

23/05/2013 16:46:05
Quote Anchor link
Hoe leg ik dit uit...

Als ik dit in mijn specifieke PDO MySQL class zet:
cons ASSOC = PDO::FETCH_ASSOC;

En ik doe dan dit:

$row = $db->getRow('ASSOC');

Dan zal ASSOC gematched worden met de class constant ASSOC die dan weer de waarde van de define PDO::FETCH_ASSOC teruggeeft. Snap je wat ik bedoel?

Die defines leek mij handig omdat ik dan dit kan doen:

$row = $db->getRow(ASSOC); // assoc is hier dus een define

waarbij dan de bedoeling zou zijn dat ASSOC automatisch wordt aangevuld door de editor, zodat ik het niet per ongeluk verkeerd kan typen zeg maar. Puur voor het gemak.
 
Erwin H

Erwin H

23/05/2013 16:53:31
Quote Anchor link
Dat begrijp ik, maar waarom doe je dan niet meteen:

$row = $db->getRow(PDO::FETCH_ASSOC);

Je editor zal die constantes ook kennen, neem ik aan.

De reden om je eigen constantes te maken is dat als je eens een andere database interface gaat gebruiken (dus niet PDO) je dan nog steeds je eigen constantes kunt gebruiken, maar niet de PDO constantes. Als je nu je eigen constantes 1-op-1 doorzet naar de PDO constantes dan heb je dat probleem namelijk nog wel.
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.