PHP Datenbankzugriff: PDO
Jump to navigation
Jump to search
Datenbankzugriff: PDO[edit]
Link zur alten Seite: https://web.cb-kompetenzen.at/pdo/
Verbindung zur MySQL-Datenbank mittels PDO:[edit]
<?php $pdo = new PDO('mysql:host=localhost;dbname=test-db', 'root', ''); ?>
Mit Try, Catch-Block[edit]
<?php try { $pdo = new PDO('mysql:host=localhost;dbname=test-db', 'root', ''); } catch(PDOException $e) { echo $e->getMessage(); } ?>
SQL Query an Datenbank senden:[edit]
<?php $pdo = new PDO('mysql:host=localhost;dbname=test-db', 'root', ''); $sql = "SELECT * FROM users"; foreach ($pdo->query($sql) as $row) { echo $row['email']."<br />"; echo $row['firstName']."<br />"; echo $row['lastName']."<br /><br />"; } ?>
Prepared Statment mit anonymen Parametern[edit]
<?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:[edit]
<?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 betroffenen Zeilen mittels rowCount() ermitteln:[edit]
<?php $pdo = new PDO('mysql:host=localhost;dbname=databasename', 'username', 'password'); $statement = $pdo->prepare("SELECT * FROM users WHERE vorname = ?"); $statement->execute(array('Max')); $userCount = $statement->rowCount(); echo "Es wurden $userCount gefunden"; ?>
Fehlermeldung abrufen mit errorInfo()[edit]
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); // Anonyme Parameter $statement = $pdo->prepare("INSERT INTO tabelle (spalte1, spalte2, splate3) VALUES (?, ?, ?)"); $statement->execute(array('wert1', 'wert2', 'wert3')); // Benannte Parameter Version 1 $statement = $pdo->prepare("INSERT INTO users (email, vorname, nachname) VALUES (:email, :vorname, :nachname)"); $statement->execute(array('email' => 'info@php-einfach.de', 'vorname' => 'Klaus', 'nachname' => 'Neumann')); // Benannte Parameter Version 2 $newUser = array(); $newUser['email'] = 'info@php-einfach.de'; $newUser['vorname'] = 'Klaus'; $newUser['nachname'] = 'Neumann'; $newUser['weiteres_feld'] = 'Dieses wird beim Eintragen ignoriert'; $statement = $pdo->prepare("INSERT INTO users (email, vorname, nachname) VALUES (:email, :vorname, :nachname)"); $statement->execute($newUser); ?>
Daten einfügen per INSERT[edit]
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); // Anonyme Parameter $statement = $pdo->prepare("INSERT INTO tabelle (spalte1, spalte2, splate3) VALUES (?, ?, ?)"); $statement->execute(array('wert1', 'wert2', 'wert3')); // Benannte Parameter Version 1 $statement = $pdo->prepare("INSERT INTO users (email, vorname, nachname) VALUES (:email, :vorname, :nachname)"); $statement->execute(array('email' => 'info@php-einfach.de', 'vorname' => 'Klaus', 'nachname' => 'Neumann')); // Benannte Parameter Version 2 $newUser= array(); $newUser['email'] = 'info@php-einfach.de'; $newUser['vorname'] = 'Klaus'; $newUser['nachname'] = 'Neumann'; $newUser['weiteres_feld'] = 'Dieses wird beim Eintragen ignoriert'; $statement = $pdo->prepare("INSERT INTO users (email, vorname, nachname) VALUES (:email, :vorname, :nachname)"); $statement->execute($newUser); ?>
Daten aktualisieren per UPDATE[edit]
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("UPDATE users SET email = ? WHERE id = ?"); $statement->execute(array('neu@php-einfach.de', 1)); ?> <?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("UPDATE users SET email = :email_neu WHERE id = :id"); $statement->execute(array('id' => 1, 'email_neu' => 'neu@php-einfach.de')); ?> <?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("UPDATE users SET email = :email_neu WHERE id = 1"); $statement->execute(array('email_neu' => 'neu@php-einfach.de')); ?>
Daten löschen mittels DELETE[edit]
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("DELETE FROM tabelle WHERE spalte = ?"); $statement->execute(array('Wert für Spalte')); ?> <?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("DELETE FROM users WHERE id = ?"); $statement->execute(array(1)); //Löscht Benutzer mit ID 1 ?> <?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("DELETE FROM users WHERE vorname = :vorname AND nachname = :nachname"); $statement->execute(array('vorname' => 'Max', 'nachname' => 'Mustermann')); //Löscht Benutzer mit Namen Max Mustermann ?>