Datenbanken - 3. Semester (Subject) / Datenbankzugriff PDO (Lesson)
There are 10 cards in this lesson
Datenbankzugriff PDO
This lesson was created by zrah.
This lesson is not released for learning.
- Was unterscheidet PDO von mysqli? PDO bietet ein einheitliches Interface für mehrere Datenbankhersteller. PDO kann außerdem nur objektorientiert genutzt werden und ist performanter als mysqli.
- Wie erzeugen sie bei PDO einen neuen Datenbankhandler? $dbh = new PDO([Server], [User], [Passwort], array [Optionen]);$dbh = new PDO("mysql:host=localhost; dbname = datenbank", "root", "geheim", array (PDO::MYSQL_ATTR_INIT_COMMAND => SET NAMES \'UTF8\''));
- Wie aktivieren sie bei PDO den Exception Fehlermode? $dbh->setAttribute(PDO::ERRMODE_EXCEPTION oder PDO::ATTR_ERRMODE)
- Wie stellt man in PDO eine Datenbankanfrage (select)? // Executes an SQL statement, returning a result set as a PDOStatement object $result = $dbh->query("SELECT * FROM fe_users"); foreach ($result as $row) { echo $row["firstname"]; }
- Wie holt man in PDO das Resultset ab (select)? // Returns an array containing all of the result set rows $stmt = $dbh->query($query); $resultset = $stmt->fetchAll([fetch_style]); foreach ($resultset as $row) { echo $row['firstname']; }
- Wie schickt man bei PDO ein insert, update oder delete-Statement an die Datenbank? $dbh->exec("UPDATE fe_users SET name=\"spider\" WHERE name=\"harrer\""); $dbh->exec("INSERT INTO fe_users SET username=\"spider\", name=\"harrer\""); $dbh->exec("DELETE FROM fe_users WHERE name=\"harrer\"");
- Wie bekommt man bei PDO den Wert des beim letzten Insert zugewiesenen Primärschlüssels $dbh->lastInsertId();
- Mit welcher Funktion schützt man sich bei PDO gegen SQL-Injection und was ist der Unterschied zur entsprechenden mysqli-Funktion? PDO::quote();
- Welche Alternative gibt es zu dieser Funktion? Mit PHP htmlentities() escapen und PHP-Variablen mit Hochkommas richtig in SQL-Strings auflösen?
- Wie werden bei PDO Transaktionen gesteuert? $dbh = new PDO(...);// Diese Methode setzt autocommit automatisch auf FALSE. $dbh->beginTransaction();// SQL-Statements absetzen$query = 'UPDATE bla SET blubb = 1 WHERE id < 10';$nums = $pdo->exec($query);// Checken, und je nachdem commit/rollback, commit setzt dabei autocommit wieder auf TRUE.if (Bedingung) { $dbh -> commit();} else { $dbh -> rollBack();}
