welke fetch mode?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior .NET developer

Functie Om half 9 kom jij binnen en pak jij als eerst natuurlijk een bakje koffie of thee. Vervolgens ga jij je voorbereiden op de stand-up van kwart voor 9. Zijn er bijvoorbeeld dingen waar jij nog tegen aan loopt? Of is er nog code die getest of gereviewd moet worden? Vervolgens starten jullie met de stand up en na de stand up zoeken jullie elkaar op en gaan jullie aan de slag. Als team met 6 developers werken jullie in drie wekelijkse sprints. Het einde van een sprint is altijd op een donderdag zodat jullie op vrijdag de demo

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 ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

Oracle APEX Ontwikkelaar (3.500-6.000 euro)

Bedrijfsomschrijving Ben jij een getalenteerde Oracle APEX ontwikkelaar met minimaal één jaar ervaring in het ontwikkelen van Oracle APEX-applicaties? Ben je gepassioneerd over het ontwikkelen van bedrijfskritische oplossingen en wil je werken bij een toonaangevend consultancybedrijf? Dan zijn wij op zoek naar jou! Deze organisatie beschikt over zowel inhouse als externe projecten, maar bovenal over een sterk team en netwerk van opdrachten waardoor jij jezelf verder kunt ontwikkelen. Het team bestaat uit een aantal junior en medior developers, maar vooral uit senioren. De business unit managers binnen het team zijn mensen die hun vak verstaan en zelf als Oracle APEX

Bekijk vacature »

Digitale Tovenaar Gezocht: Junior Low-code/No-code

Bedrijfsomschrijving Duik mee in een wereld vol innovatieve avonturen waar gegevens en technologie een magische symbiose aangaan! Al meer dan twee decennia lang zijn we de tovenaars achter de schermen die oplossingen creëren voor de meest complexe klantcontactvraagstukken en datagedreven software-uitdagingen. Bij ons draait het om de kracht van samenwerking en groei. We zijn een hechte vriendengroep die samen bergen verzet om elkaar én onze klanten te laten schitteren. Jouw succes is ons succes en we streven ernaar om elkaar naar nieuwe hoogten te tillen, niet voor even, maar voor altijd. We willen dat jij je helemaal thuis voelt in

Bekijk vacature »

Front-end Developer Angular

Dit ga je doen Jouw taken als Front End Developer bestaan uit: Het ontwikkelen van maatwerkoplossingen voor klanten; Het meedenken over nieuwe tools en technieken; Het begeleiden van junioren; Het meewerken aan diverse projecten; Het meedenken in UX/UI design. Hier ga je werken Als Front-End Developer ga je in een Scrum team aan de slag met de nieuwste digitale technologieën om klanten en overheden over de hele wereld te ondersteunen met het ondersteunen van hun software, veelal op het gebied van watermanagement en infra. Door middel van real-time data in combinatie met voorspellende analyses, AI, Deep Learning en Machine Learning

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 »

Front-end Developer vue.js node.js SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Frontend Guild. Hier ga je werken Voor een snel groeiend bedrijf de regio Nieuw Vennep zijn wij opzoek naar een ervaren Front-end Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een SaaS-platform.

Bekijk vacature »

Junior Back end developer PHP, Symfony

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

SAP ABAP Developer

Dit ga je doen Software ontwikkeling met behulp van o.a. ABAP, Sapscript en Smartforms Maatwerk development op SAP ECC 6.0, in de toekomst S/4 HANA Samenwerken met Business Analisten die functioneel en technisch ontwerpen aanleveren Testen van opgeleverde software Bugfixing Ondersteuning van eindgebruikers Hier ga je werken Onze klant, een internationaal gevestigd productiebedrijf dat mensen blij maakt, is ter versterking op zoek naar een ABAP Developer voor hun SAP team. Het team van 4 mensen verzorgt de ontwikkeling van maatwerk voor de SAP omgeving waar wordt gewerkt met modules SD, FI/CO, PM en MM. Momenteel draait het bedrijf op SAP

Bekijk vacature »

Medior PHP Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte website die in eigen beheer zijn. In onze vestiging in Nederweert zitten onze development afdelingen en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé PHP/Back-end developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het bedenken van nieuwe functionaliteiten Het verbeteren van het

Bekijk vacature »

Senior Lead Front End Developer

Functieomschrijving Voor Stichting Waternet zijn wij op zoek naar een senior Lead Front End Developer. Binnen het DevOps team Online zijn we op zoek naar een Senior Lead Front End developer met kennis van toegankelijkheid. Deze developer zal zich bezighouden met development van webpaginas die in verbinding staan met systemen uit het back office. Taken Ontwerpen, ontwikkelen, implementeren, documenteren en beheren van webapplicaties in een Azure-omgeving Debuggen, analyseren en oplossen van problemen in de OTAPomgevingen Je participeert in het DevOpsTeam Online voor het verder uitwerken en implementeren van gebruikerswensen Je bent betrokken bij toegankelijkheid audits en het implementeren van WCAG

Bekijk vacature »

Low-Code Expert/Developer: Power Platform Speciali

Bedrijfsomschrijving Als Low-Code Expert/Developer bij ons innovatieve bedrijf, neem je een cruciale rol op je in de creatie, ondersteuning en implementatie van diverse oplossingen met behulp van het veelzijdige Power Platform. Dit platform omvat Power Apps, Power BI, Power Automate, Power Virtual Agent en Azure Logic Apps. Het Power Platform biedt je de mogelijkheid om klanten te voorzien van naadloze integraties door op maat gemaakte oplossingen te creëren die compatibel zijn met (bijna) alle bestaande software-infrastructuren. Dankzij het uitgebreide scala aan toepassingen, krijg je de kans om als architect en projectleider van je eigen oplossing te fungeren. Dompel jezelf onder

Bekijk vacature »

Software Developer PHP JavaScript Python HBO SQL

Samengevat: Wij zijn een softwarebedrijf voor Autodealers. Ben jij een Medior of Senior Software Developer? Heb je ervaring met PHP, JavaScript of Python? Vaste baan: Java.Developer Software HBO €3.000 - €5.200 Bij ons op de werkvloer is er een positieve en informele sfeer. Naast een goede begeleiding en een enthousiaste klantenkring biedt deze werkgever een prettige omgeving met zeer afwisselende werkzaamheden. Houd jij van aanpakken en denk je dat je deze uitdaging aankunt? Dan zoeken wij jou! Zij werken voor grote klanten. Zij doen omvangrijke projecten die we bij deze werkgever op kantoor realiseren (geen detachering). Zij werken met state-of-the-art

Bekijk vacature »

Developer Front-end

Functie omschrijving Front-end Developer gezocht! Wij zijn op zoek naar een front-end developer voor een organisatie in de regio Veenendaal die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. Je hebt in deze functie een adviserende rol hiervoor moet je beschikken over een grote dosis vakinhoudelijke kennis. Je creëert unieke concepten door samen met collega’s en klanten te overleggen over aangeleverde designs. Hiermee draag jij je steentje bij aan de groeiambities van de klant. Jij wordt het vaste aanspreekpunt voor klanten wanneer het gaat over planningen, hierin is het jouw taak om alle betrokkenen goed

Bekijk vacature »

Medior/senior Front-end developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

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

17/11/2024 20:27:34
 
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.