SQL Beginnershandleiding

  1. Inleiding
  2. De eerste tabel
  3. De database benaderen vanuit PHP
  4. PDO: De database benaderen vanuit PHP
  5. Invoegen van records
  6. PDO: Invoegen van records
  7. Selecteren van records
  8. PDO: Selecteren van records
  9. Wijzigen van records
  10. PDO: Wijzigen van records
  11. Verwijderen van records
  12. PDO: Verwijderen van records
  13. Sleutels en constraints
  14. Selecteren uit meerdere tabellen: JOINS
  15. Werken met data en tijden
  16. Aggregate functies en GROUP BY
  17. Debuggen: het oplossen van SQL fouten
  18. Slotwoord en referenties
  19. Reacties op deze tutorial

PDO: Wijzigen van records

Ook het wijzigen van records met PDO lijkt heel veel op voorgaande PDO voorbeelden. Het nieuwe onderdeel dat we nu zullen zien is de manier om te bepalen hoeveel records er gewijzigd zijn.

Wijzigen van records (PDO)
De syntax voor het wijzigen van records is als volgt:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
require_once 'db_config.php';

try
{
    
$sQuery "
        UPDATE
            werknemers
        SET
            salaris_schaal = 12
        WHERE
            voornaam = 'Tim'
    "
;
    
    
$oStmt $db->prepare($sQuery);
    
$oStmt->execute();
    
    if(
$oStmt->rowCount() == 0)
    {
        throw new 
PDOException('Geen records gewijzigd. <br />Query: '.$sQuery);
    }
    
    echo 
'Update was succesvol';
}
catch(
PDOException $e)
{
    
$sMsg '<p>
            Regelnummer: '
.$e->getLine().'<br />
            Bestand: '
.$e->getFile().'<br />
            Foutmelding: '
.$e->getMessage().'
        </p>'
;
    
    
trigger_error($sMsg);
}
?>

Het nieuwe gedeelte in deze code is de controle hoeveel records er geupdate zijn met behulp van de rowCount() methode. Als dit aantal gelijk is aan nul, heeft de update query blijkbaar niets uitgehaald. In dat geval geven we een foutmelding door een nieuwe exception te gooien. Deze wordt opgevangen door het catch-statement en daar verder afgehandeld. De echo dat de update succesvol was, hoeft vervolgens niet in een else-statement te staan zoals je misschien zou verwachten. De uitvoer van het try-statement wordt namelijk gestopt na het gooien van de exception.

De waarden die we in deze query gebruiken, hadden we natuurlijk ook kunnen vervangen door de welbekende placeholders. In dat geval hadden we met behulp van de bindParam() methode verschillende waarden aan deze placeholders toe moeten kennen.

Meer informatie hierover is wederom te vinden in het hoofdstuk over prepared statements in de PDO tutorial.

Vorige Volgende