Boek MySQLi

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

SQL database developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als SQL database developer? Dit bedrijf bouwt applicaties om processen in distributiecentra te optimaliseren. Ter uitbreiding van het development team zijn wij op zoek naar een SQL database ontwikkelaar. Wil jij werken voor een groeiende werkgever in regio Breda waar jij de ruimte en tijd 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 werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van logistieke processen; Je gaat projecten vanaf het begin tot het

Bekijk vacature »

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 »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Barendrecht! Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Binnen deze rol houdt jij je met het volgende bezig: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps

Bekijk vacature »

Frontend Developer

Functieomschrijving Voor de NIPV zijn wij opzoek naar een Frontend Developer. Als Frontend Developer ga jij aan de slag om dashboards te bouwen vanuit het datawarehouse. Dit stelt NIPV in staat om snel en eenvoudig bij correcte bedrijfsvoeringsinformatie te kunnen. Je ontwikkelt dashboards in PowerBI, publiceert en onderhoud die, verzameld en verwerkt feedback in overleg met het ontwikkelteam. Naast dashboards ontwikkel en onderhoud je een datamodel in Excel waarmee adviseurs, controllers en analisten in staat worden gesteld om de gegevens uit de dashboards te raadplegen en anders te filteren of bepaalde gegevens nader te verfijnen, zodat verdiepende vragen kunnen worden

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 »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en staan

Bekijk vacature »

Front-End Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Front-End Developer at Coolblue? As a Front-End Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present these within the team. You also take pride in your work and welcome any feedback. Would you like to become a Front-End Developer at Coolblue? Read below if the job suits you. You

Bekijk vacature »

Full Stack Software Developer C#.NET

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

Bekijk vacature »

C# .NET Software Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen software development waar je gaat werken voor een jong en flexibel bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Software Developer met ervaring binnen C# .NET die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! In deze functie ga jij je bezighouden met: Meedenken in oplossingsrichtingen; Werken aan de architectuur; Het verbeteren van functionaliteiten binnen het dataplatform; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je aan de

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

Bekijk vacature »

Full stack Python developer

Functie Samen met andere collega’s (een product owner, een software manager en een ervaren ontwikkelaar) ga jij onze producten verder ontwikkelen. Jouw verantwoordelijkheden zullen bestaan uit: – Verder wil gaan met de ontwikkeling van onze bestaande producten; nieuwe features! – Meedenkt over de roadmap van onze producten – Als sparringpartner kan optreden op het gebied van development – Zelf ook nieuwe ideeën op tafel durft te leggen en deze van scratch af aan wilt bouwen Hieronder ook een paar voorbeelden van projecten waar we momenteel mee bezig zijn of binnenkort aan willen beginnen: – Real-time interactie creëren in onze web

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 »

Backend developer

Functie omschrijving Ben jij graag bezig met de back-end van applicaties? Zou je dit graag willen doen voor een kleine werkgever waar ook tijd is voor een drankje op zijn tijd? Je taken hierbij zullen bestaan uit: Gebruik maken van de volgende technieken: .NET (core), C#, SQL, XML, MVC, JSON, REST & SOAP API. Gebruik maken van de volgende tools: Visual Studio, GIT, Jira, Jenkins. Bovengenoemde technieken en tools ga je gebruiken om: Nieuwe functionaliteiten te ontwikkelen. Wijzigingsverzoeken van klanten uitvoeren. Verzorgen van koppelingen tussen data. Bedrijfsprofiel Jouw nieuwe werkgever bevindt zich in regio Raamdonksveer en bieden oplossingen op gebied

Bekijk vacature »
Sander Z

Sander Z

12/02/2015 14:46:02
Quote Anchor link
Al enige tijd vind ik het leuk om zelf lekker te hobbyen met PHP en MySQL.
In principe alles voor eigen gebruik.
Mijn PHP en javascript kennis is in de loop der jaren uitgebreid. Heb me daar vaker in verdiept. Maar schandelijk genoeg (ben jullie voor) niet mijn kennis mbt MySQL.

Ik gebruik nog steeds de oude mysql methode ipv mysqli of PDO.

Nu zoek ik naar een goed boek voor de mysqli methode. (Ik kies voor de mysqli methode omdat ik in principe alleen gebruik maak van SQL en niet van andere typen databases)

Wie kent een goed boek zodat ik mijn kennis kan uitbreiden?
 
PHP hulp

PHP hulp

25/04/2024 22:56:30
 
- Ariën  -
Beheerder

- Ariën -

12/02/2015 14:57:11
Quote Anchor link
De verschillen tussen de werkwijze van de functies van MySQL en MySQLi zijn niet zo heel groot te noemen.
Een van de grotere verschillen is dat MySQLi zoals prodecureel als in OO kan.

Ik denk dat als je dit doorleest, dat je dan al meer dan genoeg weet:
http://phptuts.nl/view/26/
 
Thomas van den Heuvel

Thomas van den Heuvel

12/02/2015 15:33:43
Quote Anchor link
En nog wat "boeken":

MySQLi for beginners
(heb ik geskimd, ziet er volgens mij wel goed uit)

mijn eigen samenvatting van MySQLi
naar aanleiding van onderzoek naar de precieze werking en "tips" zoals ik mysqli zou gebruiken.
 
Sander Z

Sander Z

12/02/2015 19:22:44
Quote Anchor link
Thanks voor de links!
Jullie mening voor mijn situatie: Zou je je gaan verdiepen in MySQLi OO, of PDO? En waarom?
Kan nu nog beide kanten op ;)
 
Thomas van den Heuvel

Thomas van den Heuvel

12/02/2015 20:16:14
Quote Anchor link
Hangt er vanaf.

mening:
Van welke database(s) denk je gebruik te gaan maken? Als dit enkel MySQL is zou ik voor MySQLi gaan. Het enige plausibele argument wat ik ben tegengekomen -in het geval dat je al van een MySQL database gebruik maakt- om voor PDO te gaan is wanneer je er nog niet helemaal over uit bent of MySQL de database wordt die je uiteindelijk gaat gebruiken, en wanneer er nog andere kandidaten zijn (waar PDO een driver voor heeft)

stelling:
Het is (zeer) onwaarschijnlijk dat het database type in de levensloop van een applicatie verandert.

En dan is er het (eeuwenoude?) misverstand dat PDO dit ondervangt ("Je hoeft alleen maar een handjevol PDO methodes te leren en voor de rest werkt alles he-le-maal vanzelf lololololo"). Dit doet PDO niet. Als je SQL-code in database A anders in elkaar zit dan database B dan helpt PDO je niets - PDO is een Data Access Abstraction Layer, geen Database Abstraction Layer (dit staat ook in mijn artikel...). Oftewel de code die je schrijft voor toegang tot de db (connectie, queries) is misschien wel hetzelfde tussen verschillende databases maar de vorm van de queries niet (per se). De SQL code in PDO is nog steeds (mogelijk) database-specifiek.

stelling:
PDO is niet geschreven voor MySQL. MySQLi wel. PDO heeft wel vele drivers, waaronder een MySQL driver.

mening:
Dit houdt ook in dat als je van PDO gebruik maakt om een connectie te maken met MySQL dat je misschien nog e.e.a. moet tweaken voordat dit naar behoren/verwachting werkt/reageert. Hiertoe moet je een grondige kennis hebben van zowel PDO als intrinsieke kenmerken van de database in kwestie (dus ook als je van MySQL gebruik maakt). Het is dus niet "theorie lezen and off you go met PDO" (ja, het ravijn in misschien).

mening:
Het gebruik van prepared statements wordt gepredikt, maar ik predik liever voor kennis van zaken. Ik zou nou niet direct het gebruik van prepared statements in MySQLi aanprijzen (wederom, zie mijn artikel) maar als je je gezond verstand gebruikt (en de security tips in mijn artikel volgt, lol) dan kom je een heel eind. Veiligheid van je applicatie/queries ontstaat niet door alles maar aan een toverformulie (prepare() SIMSALABIM) te voeren. Veiligheid van je applicatie/queries ontstaat door weten waar je mee bezig bent. Het enige wat PDO doet is je in slaap sussen en je lui en laks maken.

mening:
Na het schrijven van die tutorial over MySQLi voelde ik mij toch genoodzaakt om mij te verdiepen in PDO (in combinatie met MySQL). Ik moet deze nog steeds een keer afschrijven :). De dingen waar ik tegenaan liep:
- PDO lijkt typehints in bind() methoden niet te respecteren tenzij deze variabelen zelf al van dit specifieke type zijn - dit kwam mij enigszins vreemd over omdat PHP zelf loosely typed is.

Een voorbeeld: Als ik PDO vertel dat $_GET['id'] (die ik uiteraard wel filter hierop, ik ben geen complete dwaas) een integer is, dan zet PDO hier nog steeds doodleuk quotes omheen in de uiteindelijke query.

- om dit laatste waar te nemen moest ik mijn MySQL logging aanzetten en mijn uiteindelijke query uit deze log vissen, omdat ik geen andere manier heb kunnen vinden om mijn queries uit te spugen - volgens mij is dat simpelweg niet mogelijk; oftewel: queries debuggen in PDO is gigantisch omslachtig

TL;DR gebruik je enkel MySQL - gebruik MySQLi, maar snap waar je mee bezig bent door je in te lezen over de mogelijke security issues. Dat is eigenlijk ALTIJD wel een goed advies. Anders: gebruik PDO, gl & hf met queries debuggen :).

Last but not least: lees eens wat artikelen, en vorm vervolgens je eigen mening. Verdiep je in beide, en maak je eigen keuze.

EDIT: spelling
Gewijzigd op 12/02/2015 20:40:59 door Thomas van den Heuvel
 
Sander Z

Sander Z

12/02/2015 21:08:29
Quote Anchor link
Dank voor je top antwoord!

Ik ga me er zeker meer in verdiepen. Maar van alles wat ik tot nu toe al had gelezen kwam ik eigenlijk al op MySQLi uit.
En wat betreft de veiligheid. Daar had ik me al in verdiept en hou ik altijd rekening mee. Data ed. die je in een query zet moet je nooit vertrouwen. Dus altijd controleren.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

12/02/2015 21:42:59
Quote Anchor link
Ik zie op dit board vaak dat bij mysql_ of mysqli_ functies de foutafhandeling vergeten wordt. PDO heeft hier standaard in voorzien. Daarbij vind ik het juist een groot voordeel dat PDO verschillende drivers kent.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/02/2015 23:52:30
Quote Anchor link
Een simpele wrapper kan hier in voorzien. Deze wrapper kan zeker toegevoegde waarde bieden en zorgt er tevens voor dat je je functies / methoden waarmee je met je database communiceert niet hardcode. Als je een wrappertje schrijft dan doe je eigenlijk hetzelfde als wat PDO je standaard al out-of-the-box levert, toegegeven, maar dat is echt niet zo'n grote moeite.

Quote:
Daarbij vind ik het juist een groot voordeel dat PDO verschillende drivers kent.

Dat "voordeel" wordt vaak aangehaald, maar het is niet echt een voordeel vanwege de redenen die ik eerder aanhaalde:
- je schakelt bij het gebruik / in de levensloop van een applicatie toch niet / nauwelijks tussen databases
- je kunt niet zomaar schakelen van database-types simpelweg door het wijzigen van je DSN (connectie-string), dat heeft waarschijnlijk meer voeten in de aarde dan enkel dat, daarnaast zou het niet misstaan om je applicatie(s) daarna eens grondig door te testen
- je hebt nog steeds te maken met de intrinsieke eigenschappen van de specifieke database-types; zelfs MEER dan wanneer je van een extensie gebruik maakt die specifiek geschreven is voor één type (MySQLi)

De meerwaarde hiervan is imo nihil.
 
Ward van der Put
Moderator

Ward van der Put

13/02/2015 10:36:50
Quote Anchor link
Voor foutafhandeling heeft MySQLi exceptions aan boord, alleen moet je die wel even aanzetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
?>

PDO heeft wel meerwaarde. Je moet echter groter uitpakken als je PDO verkiest om meerdere databaseplatforms te ondersteunen. Je kunt dan bijvoorbeeld een driver bouwen die niet alleen de juiste PDO-driver laadt, maar ook het laden van de juiste models met queries in het SQL-dialect van een bepaalde databasestandaard regelt.

PDO kiezen voor compatibiliteit en dan alleen MySQL-specifieke queries uitvoeren in het vaak nogal typische SQL-dialect van MySQL, is inderdaad half werk. Wel is het een goed begin, maar dan moet je aansluitend nog meer stappen zetten.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/02/2015 13:16:44
Quote Anchor link
Bedankt voor de feedback heren. Al bij al is mijn conclusie dat het allemaal wat lood om oud ijzer is. Was je al gewend om met MySql te werken dan is MySqli een makkelijke overstap inderdaad. Weten waar je mee bezig bent zoals hierboven door Thomas genoemd is inderdaad het allerbelangrijkste. Jouw toevoeging over de mysqli-extensions is waardevol Ward, had er nooit meer aan gedacht doch al eens eerder gelezen volgens mij :-)
 
Thomas van den Heuvel

Thomas van den Heuvel

13/02/2015 15:03:00
Quote Anchor link
PDO is als een keukenmachine met een heleboel functies... waarvan je er doorgaans maar 1 gebruikt. En als je wilt hakken in plaats van snijden moet je het hele apparaat anders kalibreren.

Maar laten we het apparaat vooral prijzen om zijn veelzijdigheid (fantaseer hierbij een TelSell reclamespot "Wat zoveel functies? Amazing!").
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

14/02/2015 13:43:03
Quote Anchor link
Het is prima als je voorkeur uitgaat naar MySQLi, maar kretologie zoals hierboven raakt kant noch wal.

Sterker nog, MySQLi kent veel meer functies dan PDO!

Bv drie manieren (preps, query en real_query) om een query uit te voeren. Op zich niet zo'n probleem, maar je moet voor elk van de drie daarop anders programeren. PDO is daarin veel eenduidiger, ongeacht of je preps of een query uitvoert, je krijgt gewoon een statement object terug.

Ook de prepared statements (die ik overigens zelden gebruik) van PDO werken beter (named paramaters ipv die afschuwelijke placeholders).

Ik persoonlijk kies dus voor PDO, niet vanwege portability maar gewoon om dat ik het beter/gemakkelijker vind werken.
Gewijzigd op 14/02/2015 13:43:19 door Ger van Steenderen
 
Thomas van den Heuvel

Thomas van den Heuvel

14/02/2015 17:58:39
Quote Anchor link
Het bovenstaande was dus bedoeld als knipoog naar iets wat zo vaak wordt genoemd als "sterk punt" van PDO, terwijl dit helemaal geen sterk punt is. Ik kan mij ook voorstellen dat men hiervan de humor (het sarcasme?) inmiddels ontgaat. Integendeel, naar mijn mening raakt de (meeste) argumentatie waarom PDO dan "beter" zou zijn kant nog wal.

Sterker nog, er is helemaal geen "beter" of "best", zodra je deze terminologie hanteert zit je meestal al fout. Des te meer is de argumentatie waarom je kiest voor PDO of MySQLi belangrijker dan de keuze zelf. En elke keer bedient men zich weer zich van dit soort onzin argumenten. Die je overigens niet moet tellen maar moet wegen.

"Minder statements" is er ook zo een. Het is gewoon bedrieglijk dat PDO daarom makkelijker lijkt, maar het geenszins is... tenzij je stopt bij het aanleren van prepared statements en verder geen blik onder de motorkap van PDO (noch de specifieke driver) werpt.

Ik durf te wedden dat je eerder je weg vindt in MySQLi dan dat je PDO + de MySQL-driver voor PDO hebt ontleed.

Ieder zijn ding. Ik vind PDO een gribus (om bovengenoemde redenen (<-- onderbouwde argumenten yo)) en daarnaast ontiegelijk gebruiksonvriendelijk voor ontwikkeling.
 



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.