PDO - Verbinden met verschillende databases

  1. Inleiding
  2. Gebruik van de PDO extensie
  3. Uitvoeren van queries
  4. Foutafhandeling
  5. Prepared statements
  6. Transacties
  7. Slotwoord en referenties
  8. Reacties op deze tutorial

Gebruik van de PDO extensie

Voor het gebruik van de PDO extensie moeten we natuurlijk wel eerst weten of de database die we willen gebruiken wel ondersteund wordt. Om PDO met een bepaalde database te gebruiken, moeten we de juiste PDO driver geïnstalleerd hebben.

Voorbeeld 1: Controleren welke databasedrivers geïnstalleerd zijn
Code
1
2
3
4
5
<?php 
echo '<pre>';
print_r(PDO::getAvailableDrivers());
echo 
'</pre>';
?>

In mijn geval levert dat het volgende resultaat:
Code
1
2
3
4
5
6
Array
(
    [0] => sqlite2
    [1] => pgsql
    [2] => mysql
)

Dit betekent dat ik op dit moment de juiste drivers geïnstalleerd heb om te werken met de database systemen MySQL, PostgreSQL en SQLite.

Maar ook andere populaire databases worden door PDO ondersteund zoals in onderstaand lijstje te zien is:

  • MySQL
  • PostgreSQL
  • SQLite
  • Microsoft SQL Server
  • ODBC
  • Oracle

Verbinden met een database
Het verbinden met een database met behulp van PDO is kinderlijk eenvoudig. Het komt eigenlijk alleen neer op het aanmaken van een nieuwe instantie van de PDO klasse. Natuurlijk moet je bij het instantieren van de klasse wel de juiste paramters meegeven.

Onderstaande voorbeelden laten van enkele databases zien hoe er een verbinding mee gemaakt wordt.

Voorbeeld 2: Een MySQL verbinding opzetten
Code
1
2
3
<?php
$db 
= new PDO('mysql:host=localhost;dbname=test''user''password');
?>

Voorbeeld 3: Een pgSQL verbinding opzetten
Code
1
2
3
<?php
$db 
= new PDO('pgsql:host=localhost;dbname=test''user''password');
?>

Voorbeeld 4: Een SQLite verbinding opzetten
Code
1
2
3
<?php
$db 
= new PDO('sqlite:/path/to/database.sdb');
?>

Voorbeeld 5: Een Oracle verbinding opzetten
Code
1
2
3
<?php
$db 
= new PDO('oci:''user''password');
?>

Dat je voor het opzetten van een verbinding met elke willekeurige database telkens dezelfde regel PHP kunt gebruiken, heeft te maken met het feit dat de eigenlijke verbinden met de database achter de schermen afgehandeld wordt. De meegegeven parameters worden door de extensie geinterpreteerd en een verbinding met de juiste database wordt gemaakt.

Sluiten van een verbinding
Ook het sluiten van een verbinding is kinderlijk eenvoudig en voor elke database hetzelfde. Het is niets meer dan het vernietigen van de instantie van de PDO klasse.

Voorbeeld 6: Sluiten van een verbinding
Code
1
2
3
4
5
6
7
<?php
// Maken van verbinding
$db = new PDO('mysql:host=localhost;dbname=test''user''password');

// Sluiten van verbinding
$db NULL;
?>

Het handmatig sluiten van een databaseverbinding is in principe niet nodig. Aangezien het bestaan van de verbinding direct afhangt van het bestaan van de instantie van de PDO klasse, zal de verbinding verbroken worden zodra een script eindigt. Het veelvuldig tussendoor sluiten en openen van verbindingen kan tot een zeker performance verlies leiden, zeker als je verbinding maakt met een externe database server.

In de rest van deze tutorial zal ik slechts nog voorbeelden geven van verbindingen met een MySQL database. Dit is immers nog steeds de meest gebruikte database achter websites en de meeste lezers zullen hier ervaring mee hebben.

Vorige Volgende