Crashkurs PDO
15. Juli 2019
Eine ausführliche Einführung in MySQL und PHP Data Objects (PDO) findet ihr in unserem MySQL Tutorial. Dies ist nur eine kurze Übersicht der wichtigen Funktionen von PDO.
Inhaltsverzeichnis
Verbindung aufbauen
Verbindung zur MySQL-Datenbank mittels PDO:
1 2 3 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=databasename', 'username', 'password'); ?> |
Ausführliche Informationen
SQL Query an Datenbank senden
Simple Datenabfragen können mittels $pdo->query($sql) an die Datenbank gesendet werden.
1 2 3 4 5 6 7 8 9 10 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=databasename', 'username', 'password'); $sql = "SELECT * FROM users"; foreach ($pdo->query($sql) as $row) { echo $row['email']."<br />"; echo $row['vorname']."<br />"; echo $row['nachname']."<br /><br />"; } ?> |
Prepared Statements
Prepared Statement mit anonymen Parametern:
1 2 3 4 5 6 7 8 9 10 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=databasename', 'username', 'password'); $statement = $pdo->prepare("SELECT * FROM users WHERE vorname = ? AND nachname = ?"); $statement->execute(array('Max', 'Mustermann')); while($row = $statement->fetch()) { echo $row['vorname']." ".$row['nachname']."<br />"; echo "E-Mail: ".$row['email']."<br /><br />"; } ?> |
Prepared Statement mit benannten Parametern:
1 2 3 4 5 6 7 8 9 10 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=databasename', 'username', 'password'); $statement = $pdo->prepare("SELECT * FROM users WHERE vorname = :vorname AND nachname = :nachname"); $statement->execute(array(':vorname' => 'Max', ':nachname' => 'Mustermann')); while($row = $statement->fetch()) { echo $row['vorname']." ".$row['nachname']."<br />"; echo "E-Mail: ".$row['email']."<br /><br />"; } ?> |
Anzahl der Zeilen
Die Anzahl der betroffenen Zeilen können mittels der Methode rowCount() ermittelt werden:
1 2 3 4 5 6 7 8 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=databasename', 'username', 'password'); $statement = $pdo->prepare("SELECT * FROM users WHERE vorname = ?"); $statement->execute(array('Max')); $anzahl_user = $statement->rowCount(); echo "Es wurden $anzahl_user gefunden"; ?> |
Eingefügte ID
Die vergebene ID einer Auto Increment-Spalte kann mittels der Methode lastInsertId() abgerufen werden.
1 2 3 4 5 6 7 8 9 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=databasename', 'username', 'password'); $statement = $pdo->prepare("INSERT INTO users (email, vorname, nachname) VALUES (?, ?, ?)"); $neue_id = $pdo->lastInsertId(); echo "Neuer Nutzer mit id $neue_id angelegt"; ?> |
MySQL Fehlermeldung
Zum Abrufen der MySQL Fehlermeldung existiert die Methode errorInfo().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("SELECT email, password FROM users"); if($statement->execute()) { while($row = $statement->fetch()) { echo $row['email']."<br />"; } } else { echo "SQL Error <br />"; echo $statement->queryString."<br />"; echo $statement->errorInfo()[2]; } ?> |