pdo execute

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer (junior functie)

Functie omschrijving Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed leesbaar is. Je maakt voor bedrijven op maat

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue's back office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

Lead C++ Developer

De rol van Lead C++ Developer Als Lead C++ developer bij KUBUS word je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de desktop applicaties van BIMcollab, ons platform voor 3D model-validatie en issue-management bedoeld om de kwaliteit van 3D design-modellen voor gebouwen te verbeteren. Betere 3D modellen leiden tot betere gebouwen, dus zo draag je bij aan verduurzaming van de gebouwde omgeving met slimmer gebruik van materialen, minder verspilling en energie-efficiënte gebouwen. Een goede gebruikerservaring staat bij ons hoog in het vaandel; we gaan in onze ontwikkeling voor innovatie en kwaliteit. In je rol als

Bekijk vacature »

Laravel / PHP developer

Functie omschrijving Wij zijn op zoek naar een Medior PHP / Laravel Developer voor een IT-consultancy in de omgeving van Hoofddorp! Ben jij op zoek naar een leuke nieuwe uitdaging binnen een veelzijdige werkomgeving? Lees dan snel verder! Binnen dit bedrijf werk je in een ontwikkelteam, waarin je zeer betrokken bent en meedenkt over softwareoplossingen. Binnen dit Team hou je je bezig met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken;

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Gorinchem zijn wij op zoek naar versterking. Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back end werken! Bedrijfsprofiel Onze

Bekijk vacature »

Senior/Lead Python developer

Functie Samen met je team, bestaande uit een senior, 2 mediors en één junior ontwikkelaar ga je op een Agile-gebaseerde aanpak werken aan hun software. Je hebt oog voor kwaliteit, risico’s en klantbelang. Communicatie met je collega’s en waar nodig ook met klanten speelt een belangrijke rol in het bereiken van een succesvol resultaat. Als persoon ben je slim, krijg je dingen voor elkaar en ga je resultaatgericht te werk. Binnen het development team is er veel zelfstandigheid, los van de stand-up (10:00 uur) en zo nu en dan pair-programming sessies. Technieken die zij gebruiken zijn o.a. Python, Django, MySQL,

Bekijk vacature »

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

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 »

Front-end developer gezocht

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

Front end developer binnen de consultancy

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Full Stack .NET Developer C# ASP.NET

Samengevat: Deze werkgever is gespecialiseerd in het op afstand bewaken en besturen van machines en processen. Ben jij een ervaren Full Stack .NET Developer? Heb je ervaring met C# en ASP.NET? Vaste baan: .Net Developer C# ASP.NET HBO €3.300 - €4.500 Deze werkgever is een snel groeiende onderneming gespecialiseerd in het op afstand bewaken en besturen van machines en processen, IoT (Internet of Things). Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Wil jij bij de top specialisten horen? Ben jij op zoek naar een

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

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

08/09/2024 01:45:05
 
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.