pdo execute

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 13382 Introductie We is looking for a HANA Developer to work for our client. The candidate has to have an experience in building Data Intensive Applications (DIA’s). The role of a HANA Developer at ASML involves working on building Data Intensive Applications in an industrial/enterprise environment. The primary responsibility is to handle data from various sources and determine the best way to structure it for use by data analysts, who will run queries and algorithms against it for predictive and prescriptive analytics through machine learning. Wat verwachten we van jou?

Bekijk vacature »

Back-End Web Developer

As a Back-End Web Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a Back-End Web Developer at Coolblue? As a Back-End Web Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you also feel confident with setting up microservices in Typescript or are open to learning this. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing pure

Bekijk vacature »

Senior Airport Developer ( System engineer)

De functie Nice to know (you) De nieuwe A-pier wordt de duurzaamste van Schiphol. Als deze af is ligt er 4000 vierkante meter zonnepanelen op het dak. En de toiletten? Die spoelen door met regenwater. we gaan ervoor: het creëren van de meest duurzame en hoogwaardige luchthavens ter wereld. een toekomstbestendig en duurzaam Schiphol. Daar werken we elke dag hard aan in team Development & Sustainability. Jij bent regisseur, expert én aanjager van de ontwikkeling van Schiphol. Connecting your world Hoe maak je de ambities en doelstellingen van Schiphol concreet in een project? De waarde voor Schiphol naar eisen die

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 »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn ze op zoek naar een Technische front end developer. Momenteel hun front end back end team gescheiden aan het werk. Hier willen ze verandering in krijgen. Omdat ook veel interne applicaties ontwikkeld worden zoeken ze iemand die hen kan helpen om de interne applicaties te voorzien van de juiste Vue.js componenten. Zodoende willen ze de interactie tussen front end en back end versoepelen en de volgende stap binnen het platform gaan zetten. Deze componenten die jij ontwikkeld zullen in elk project gebruikt worden. Het back end team bestaat momenteel uit 8 ontwikkelaars

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het development team. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

Junior full stack developer

Functie Als full stack developer binnen onze organisatie ga jij je bezig houden met het bouwen van de user experience van de webapplicaties. Je bent verantwoordelijk voor het vertalen van concepten, briefings en designs naar werkende functionaliteit. Hierbij zorg je ervoor dat applicaties betrouwbaar, veilig en toekomstbestendig zijn en een goede architectuur hebben en behouden. Verder denk je actief na- en mee over nieuwe ontwikkelingen en functionaliteiten om zo elke dag de klantervaring weer te verbeteren. Dit doe je natuurlijk niet alleen maar in een development team. Het team bedraagt momenteel 4 man bestaande uit 2 devops engineers en 2

Bekijk vacature »

Software Developer .NET

Functie omschrijving .NET developer gezocht! Wij zoek op zoek naar een .NET Developer die zich niet uit het veld laat slaan voor een software bedrijf in de regio Veenendaal. Je gaat in deze functie aan de slag met het door ontwikkelen van bestaande producten en het ontwikkelen van nieuwe producten. Dit bedrijf ontwikkeld SaaS applicaties die zowel intern als extern gebruikt worden. Verder bestaat je functie uit: Het ontwikkelen en bouwen van webapplicatie, mobiele applicaties en websites vallen onder jouw verantwoordelijkheden; Werken met onder andere .NET, C#, HTML/CSS, Javascript en MSSQL/Oracle Databases; Hierin werk je samen met andere developers en

Bekijk vacature »

Web Application Developer

Dit ga je doen Samen met het team werk je aan de visualisatie functionaliteiten en hoe dit gebruikt kan worden in een operationele setting; Het ontwerpen, ontwikkelen, onderhouden en leveren van support betreft het Warehouse Management Systeem en de bijbehorende web visualisaties; Je gebruikt hierbijde tools WebGL en ASP.net; Het meewerken in implementatieprojecten; Het leveren van Go-Live Support; Sparren met jouw Amerikaanse collega's. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Web Application Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

Full stack developer Node.js

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 »

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 »

Software Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering 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

22/12/2024 12:08:58
 
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.