pdo execute

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Back-end developer (Magento2)

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

.NET developer

Functie Als .NET developer werk jij samen in een multidisciplinair ontwikkel team met 1-2 Senior .NET developers, twee front-end developers, Data Scientists en één UX designer. Als team werken jullie aan het ontwikkelen van een Cloud based applicatie en aan het stabieler maken van deze applicatie. Ook unit testing gaat erg belangrijk worden in jouw nieuwe functie. Samen met de Senior .NET ontwikkelaar wordt jij verantwoordelijk voor het ontwikkelen van de API. Jullie werken met veel data en incidenteel komen er ook data vraagstukken en zullen er wat queries gedraaid moeten worden. Dit betekend dat jij veel gaat werken met

Bekijk vacature »

Delphi developer

Functie Als Delphi developer ga jij aan de slag in een team met twee andere ervaren Delphi programmeurs waaronder de Hoofd programmeur. Als team zijn jullie verantwoordelijk voor de doorontwikkeling van jullie bestaande applicatie. Daarnaast zijn jullie verantwoordelijk voor het onderhouden van deze applicatie en het oplossen van eventuele bugs. Eisen - HBO werk en denk niveau; - Minimaal één jaar ervaring met Delphi; - Goede beheersing van de Nederlandse taal in woord en geschrift; - Jij bent zelfstandig, maar kan ook in team verband werken. Aanbod - €3000,-- €4000,- op basis van jouw kennis en ervaring; - 8% vakantiegeld;

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 »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

Bekijk vacature »

Full stack developer Node.js, React Remote

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

Medior Front end developer React

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor op de

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Core developer wordt jij onderdeel van ons team met drie breed ontwikkelde software engineers en een flexibele schil met zes ervaren freelancers. Jij gaat mee in de visie van onze organisatie om als IoT partner in deze branche specifieke markt “het” platform te blijven innoveren en deze ook steeds slimmer te maken. Wij hopen dan ook zeker dit in de toekomst te kunnen realiseren met bijvoorbeeld Artificial Intelligence. De architectuur van ons platform is opgemaakt uit een deel eigen protocol, een interface laag en een laag welke de protocollen van derde partijen vertaald naar het eigen

Bekijk vacature »

Trainee pega developer

Wil jij een mooie stap maken in jouw carrière? Mooi! Bij De Mandemakers Groep haal je binnen 6 maanden je CSA- en CSSA-certificaten, waarna jij aan de slag kan als Pega-developer in ons IT-team. Achter de schermen zorg jij ervoor dat collega’s efficiënt werken en klanten iedere dag beter geholpen worden. Wil jij daaraan bijdragen? En jouw ICT-skills ontwikkelen? Lees dan snel verder en solliciteer vandaag nog als trainee Pega-developer. Wat ga je doen? Als trainee Pega developer leiden wij je op tot gecertificeerd software developer voor het low-code platform PegaSystems. In de training ben je verantwoordelijk voor een te

Bekijk vacature »

TypeScript developer (tot € 6.000, - bruto pe

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een ervaren Typecript developer die niet alleen zichzelf verder ontwikkelt, maar het ook leuk vinden om op termijn meer junior collega’s op pad te helpen. Je zult aan de slag gaan met het migreren van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde aan User Experience en kiezen ze duidelijk voor kwaliteit i.p.v. snelheid. Je krijgt dus de ruimte om vanuit gedegen onderzoek te werk te gaan en het borgen van kwaliteit staat hoog in het vaandel.

Bekijk vacature »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

Scrum Master

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Scrum master op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je begeleidt twee teams binnen de afdeling Platform Services (PLS). Je helpt mee de devops manier van werken van de teams verder door te ontwikkelen. Je helpt de PO bij het managen van de product backlog; het voorbereiden van

Bekijk vacature »

C#.NET ontwikkelaar

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Je bouwt webshops, webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Framework en C#. Je zorgt voor de optimalisering van bestaande software en de automatisering van

Bekijk vacature »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

08/05/2013 03:33:50
Quote Anchor link
Hallo,

Aan de PDO execute functie kun je een array $input_parameters meegeven, bijv.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sth
->execute(array(':calories' => $calories, ':colour' => $colour));
?>

Ik vind dit wel een prettige manier. Je kan ook gebruik maken van bindParam() maar dan moet je telkens aangeven wat voor type variabele het is (bijv. een string of een int). Het meegeven van een array aan de execute functie vind ik prettiger werken.

Nu wordt er op php.net over deze array gezegd:

An array of values with as many elements as there are bound parameters in the SQL statement being executed. All values are treated as PDO::PARAM_STR.

Het gaat mij om het dikgedrukte stukje. Alle values worden als strings beschouwd. Echter, ik wil ook een getal kunnen ingeven (bijv. voor een id). Ik heb het even getest en dat lijkt gewoon goed te werken. Toch vind ik het raar dat die opmerking over die strings er dan bij staat vermeld. Heeft iemand een idee waarom die opmerking erbij staat, en kan dit op de een of andere manier voor problemen zorgen als ik een getal wil gebruiken?
 
PHP hulp

PHP hulp

04/11/2024 21:55:51
 
Erwin H

Erwin H

08/05/2013 10:49:15
Quote Anchor link
Dat is nogal logisch en je hebt in feite zelf het antwoord al gegeven:
Ozzie PHP op 08/05/2013 03:33:50:
Je kan ook gebruik maken van bindParam() maar dan moet je telkens aangeven wat voor type variabele het is (bijv. een string of een int).

In bindparam kan je aangeven wat voor type het is. Dat is het voordeel van bindparam. Als je het in execute meegeeft kan je dat niet en DUS moet alles op een identieke wijze worden verwerkt. De database engine kan niet ruiken wanneer jij een string bedoelt en wanneer jij een integer bedoelt. Alles is dus automatisch een string.

Wil je specifiek een integer invoeren, dan gebruik je dus bindparam.

Of het voor problemen kan zorgen durf ik niet 100% te zeggen. In principe niet denk ik, aangezien je een waarde altijd binnen quotes kan meegeven in een query. Niet nodig en in veel gevallen ook overbodig, maar het kan wel. Geef je een integer mee binnen quotes dan krijg je er niet eens een warning voor.

Toevoeging op 08/05/2013 10:52:00:

Edit:
De situatie waar je normaal geproken wilt dat een integer bijvoorbeeld NIET tussen quotes staat is voor het voorkomen van sql-injectie. Als je een int waarde zonder quotes geeft en het is een echte int dan gaat je query goed. Geef je het zonder quotes mee en staat er iets anders in, dan krijg je een error uit je database, query wordt niet uitgevoerd. Geef je echter een int tussen quotes op en staat er dan iets vreemds in, dan kan het wel uitgevoerd worden!

Echter, deze situatie is in jouw geval niet van toepassing omdat je een prepared statement gebruikt.
 
Wouter J

Wouter J

08/05/2013 11:34:42
Quote Anchor link
Bij int en string maakt het niet heel veel uit. Maar types al bool of null maakt dit wel uit.
 
Ozzie PHP

Ozzie PHP

08/05/2013 13:01:08
Quote Anchor link
Dankjulliewel.

Wouter J op 08/05/2013 11:34:42:
Bij int en string maakt het niet heel veel uit. Maar types al bool of null maakt dit wel uit.

In welke situatie zou dit voor problemen kunnen zorgen? Kan iemand een voorbeeld geven?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/05/2013 13:03:39
Quote Anchor link
Bij MySQL maakt het inderdaad niet uit, bij SQL Server wel, daar krijg je een foutmelding als je een numeriek datatype quote. MySQL kent (net als de SQL standaard) overigens geen boolean datatype.
 
Ozzie PHP

Ozzie PHP

08/05/2013 13:08:16
Quote Anchor link
Thanks Ger, ik zal al te zoeken naar een boolean datatype maar ik kon niks vinden. Dat verklaart nu ook waarom :)

Maar is het dan "fout" om een numeriek datatype te quoten?

Hoe dan ook, is de manier waarop ik het nu doe 100% veilig? Ik maak dus gebruik van prepared statements, en ik geef de parameters als array mee in de execute() method. Of zeggen jullie dat ik toch beter bindParam() kan gebruiken? Is er een wezenlijk verschil?
 
Donny Wie weet

Donny Wie weet

08/05/2013 13:08:20
Quote Anchor link
Ik heb pas PDO op school gehad, maar is het niet gewoon zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$field
= 1;
$sql = "SELECT * FROM table WHERE field=:field";
$uitvoeren = $connectie -> execute($sql);
$uitvoeren -> bindparam(' :field ' , $field);
$uitvoeren -> execute();
?>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/05/2013 13:22:00
Quote Anchor link
Ozzie PHP op 08/05/2013 13:08:16:
Maar is het dan "fout" om een numeriek datatype te quoten?

Nee fout is het niet, ik vind het alleen niet in overeenstemming met de gedachte van portabilty achter PDO.
Dus als ik al prepared statements zou gebruiken (wat ik zeer zelden doe) dan zou ik met bindParam werken.
 
Ozzie PHP

Ozzie PHP

08/05/2013 13:30:00
Quote Anchor link
Laat ik mijn vraag dan anders formuleren. Het feit dat ik geen datatype meegeef (omdat ik een array meegeef aan de execute() method) kan dat op de een of andere manier negatieve gevolgen hebben? Queries die niet werken, slechtere performance?

(Ik zou bijv. ook een functie kunnen maken waarbij ik een array meegeef en dat ik dan per key/value paar kijk welk datatype de value is, en afhankelijk daarvan bindParam aanroep met het juiste datatype. Maar wellicht is dit nogal over de top.)
Gewijzigd op 08/05/2013 13:31:48 door Ozzie PHP
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/05/2013 13:37:01
Quote Anchor link
Nee met Mysql dus niet. In ieder geval geen foutmelding op de query, en mocht er al performance verlies zijn dan is dat te verwaarlozen.
 
Ozzie PHP

Ozzie PHP

08/05/2013 13:45:43
Quote Anchor link
Oké, thanks Ger. En het idee om een array via een method om te zetten naar bindParam() met het juiste datatype? Wat vind je daarvan?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$foo
= 'een string';
$bar = 10;
$array = array(':foo' => $foo, ':bar' => $bar);

// en dat je deze array dan omzet naar:
bindParam(':foo', $foo, PDO::PARAM_STR);
bindParam(':bar', $bar, PDO::PARAM_INT);

?>

Zou dat enige toegevoegde waarde hebben? Of is het dan toch beter om gewoon een array zonder datatypes mee te geven aan execute()?
Gewijzigd op 08/05/2013 13:47:19 door Ozzie PHP
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/05/2013 14:11:38
Quote Anchor link
Ik vind dat een goed idee, maar ik ben dan ook een purist in dat soort dingen.
Ik loop nog steeds met het idee rond om een 'eigen' parameter methode te ontwikkelen, met als voorbeeld de bind methode van .NET. Daar kan je alle datatypes aan een parameter toewijzen, en owee als je dan een string aan een int parameter meegeeft.
 
Ozzie PHP

Ozzie PHP

08/05/2013 14:15:06
Quote Anchor link
Oké, thanks... het enige nadeel is dat er dan wat meer processing plaats moet vinden wat weer nadelig kan zijn voor je performance. Maar van de andere kant doe je ook weer niet heeel veel queries per pagina.

Toevoeging op 08/05/2013 14:32:28:

Toch een probleem als je alleen de execute array gebruikt.

Als je bijv. "... LIMIT :limit_amount" wil doen dan mogen daar geen quotes omheen staan. De query zal dan mislukken.
 
Evert Bennekom

Evert Bennekom

08/05/2013 14:49:23
Quote Anchor link
Ik zou zeggen dat je bindParam niet hoeft te gebruiken zolang je de variabelen vantevoren al correct getypecast hebt.

Dus je wilt een id als int opslaan, dan ook altijd netjes $iId = (int) 1 ;

Je komt pas in de problemen als je applicaties groeien en daarmee de kans op slordigheidjes vergroot, dus per ongeluk toch een numerieke string voor id in de database plempen.
 
Ozzie PHP

Ozzie PHP

08/05/2013 14:53:07
Quote Anchor link
Zie mijn opmerking hierboven... als ik een LIMIT wil meegeven en ik dat via de array doe, dan wordt er een string van gemaakt en gaat het fout want dat mag niet in MySQL :(
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/05/2013 15:38:35
Quote Anchor link
Wat heeft het voor zin een parameter aan een LIMIT te geven?
 
Ozzie PHP

Ozzie PHP

08/05/2013 15:43:54
Quote Anchor link
Bijv. om in te stellen hoeveel rijen je wilt terugkrijgen?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/05/2013 16:17:16
Quote Anchor link
Ja hehehe dat snap ik, maar waarom in een parameter
Maar prepared statements zijn hoofdzakelijk bedoeld om je performance te verbeteren als je meerdere dezelfde query's achter elkaar uit moet voeren met verschillende waarden in de parameters.
Maar bij één enkele levert het performance verlies op (dat vind vooral jij niet zo leuk).
Gewijzigd op 08/05/2013 16:18:04 door Ger van Steenderen
 
Ozzie PHP

Ozzie PHP

08/05/2013 16:22:08
Quote Anchor link
"Ja hehehe dat snap ik, maar waarom in een parameter"

Omdat ie dan ge-escaped wordt enzo? Dus veilig? Maar "limit" kan toch ook gewoon een parameter zijn? Of zie ik dat verkeerd?

"Maar prepared statements zijn hoofdzakelijk bedoeld om je performance te verbeteren als je meerdere dezelfde query's achter elkaar uit moet voeren met verschillende waarden in de parameters."

Is het echt meetbaar trager dan? Ik begreep juist dat het veiliger is om prepared statements te gebruiken ivm sql injection. Dus vandaar leek het me eigenlijk wel oké. Zit ik ernaast?
 
Erwin H

Erwin H

08/05/2013 16:33:38
Quote Anchor link
Veiliger dan wat? Ja, met prepared statements kan je geen sql injectie meer krijgen. Maar als jij je input goed controleert en bijvoorbeeld pdo.quote gebruikt, dan kan dat ook niet.

Maar bij een limit kan het eigenlijk ook al niet. Zoals jezelf eerder al aangaf kan je bij een limit geen quotes om de waarde heenzetten. Dus deze query gaat niet werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT blabla
FROM table
LIMIT '1';

Daarnaast kan je geen twee queries in 1 keer uitvoeren, dus dit kan ook niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT blabla
FROM table
LIMIT 1;DELETE FROM table;

Ergo: via die limit clause kan je helemaal geen sql injectie krijgen. Ook geen noodzaak dus om daar prepared statements te gebruiken.
 
Ozzie PHP

Ozzie PHP

08/05/2013 16:45:27
Quote Anchor link
Erwin, dankjewel voor je toelichting. Maar kan het dan kwaad als ik prepared statements gebruik? Het lijkt nu alsof jullie zeggen dat het niet goed is.

Daarnaast vind ik het wel duidelijker om prepared statements te gebruiken omdat je dan niet al je values hoeft te gaan quoten. Dat heeft ook wel weer z'n voordelen.

Maar ik zou graag weten waarom het niet oké is om prepared statements te gebruiken.
 

Pagina: 1 2 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.