MySQLi - Een nieuwe manier van interactie tussen PHP en MySQL

  1. Inleiding
  2. Proceduraal vs. Object georienteerd
  3. Object georienteerde interface van mysqli
  4. Meerdere queries tegelijk uitvoeren
  5. Prepared statements
  6. Transacties met mysqli: commit() en rollback()
  7. Uitbreiden van de mysqli klasse
  8. Slotwoord en referenties
  9. Reacties op deze tutorial

Inleiding

Sinds midden jaren 90 heeft de mysql extensie van PHP dienst gedaan als brug tussen PHP en MySQL. Iedereen is wel bekend met de mysql_* functies die je gebruikt om acties op een MySQL database uit te voeren. De mysql extensie heeft al die tijd zijn werk eigenlijk prima gedaan.

In de loop der jaren echter zijn er zowel in PHP als MySQL veel dingen veranderd en sinds de komst van PHP 5 en MySQL 4.1 begon de mysql extensie steeds meer gebreken te vertonen. Het belangrijkste gebrek is misschien wel de incompatibiliteit met sommige nieuwe features die vanaf MySQL 4.1 beschikbaar zijn. Vandaar dat het op een gegeven moment tijd werd om een hele nieuwe extensie te schrijven. Deze extensie, die sinds PHP 5 beschikbaar is, kreeg de naam mysqli. De i in deze naam staat voor improved.

Het belangrijkste doel van de mysqli extensie is het zorgen voor compatibiliteit met de nieuwste functies van de database server. Daarnaast biedt deze nieuwe extensie naast de bekende (procedurale) manier van werken met een database ook een object georienteerde interface voor interactie met de database server. Deze methode zullen we nog veelvuldig tegenkomen.

Waarom zou je overstappen op het gebruik van mysqli? Allereerst krijg je natuurlijk beschikking over de nieuwe features van MySQL 4.1 en hoger. Daarnaast is performace een belangrijke factor. De meeste acties die uitgevoerd kunnen worden zijn sneller geworden en acties zijn nu tot 40x sneller uit te voeren. En misschien nog wel de belangrijkste reden: de mysql extensie zit in de laatste jaren van zijn bestaan. Dit betekent dat vanaf PHP 6 de mysql_* functies niet meer ondersteund zullen worden.

In deze tutorial zal ik een uitgebreid overzicht geven van de vele mogelijkheden die deze nieuwe extensie je biedt. Ik zal vrij eenvoudig beginnen met voorbeelden van het verbinden met de database en eenvoudige queries en zal gelijk aan verder gaan met complexere toepassingen. Onder andere het uitvoeren van meerdere queries in een enkele stap, het gebruik van prepared statements en functies als commit() en rollback() zullen besproken worden.

De nadruk zal in deze tutorial liggen op verschillende manieren van het uitvoeren van database queries, niet op de inhoud van de queries op zich.

Benodigde voorkennis
  • Basiskennis PHP
  • Werken met databases in PHP
  • Basiskennis SQL
  • Basiskennis van object georienteerd programmeren

Systeemeisen
  • PHP >= 5.0.0
  • MySQL >= 4.1
  • Geactiveerde mysqli extensie (controleer phpinfo() op een kopje 'mysqli')

Volgende