====== MySQL-Abfragen ====== ===== Abfrage senden mit PDO ===== Um Tabellendaten einer bestimmten Datenbank abzufragen, werden die nachfolgenden PDO-Befehle verwendet. ^PDO|Erstellung einer neuen Datenbankverbindung und Auswahl der Datenbank im Verbindungs-DSN| ^PDO::query()|Senden einer SQL-Anweisung über die aktive PDO-Datenbankverbindung| ^PDO::exec()| Ausführen einer SQL-Anweisung ohne Rückgabewerte.| Nachdem eine erfolgreiche Verbindung zum MySQL-Server hergestellt wurde, erfolgt die Auswahl der Datenbank direkt im Data Source Name (DSN). Eine Abfrage von Tabellendaten und deren Werten realisieren Sie über den Befehl PDO::query(). ==== Syntax für die Erstellung einer PDO-Verbindung ==== $dsn = 'mysql:host=server;dbname=Datenbankname;charset=utf8'; //dsn ... data source name $pdo = new PDO($dsn, 'Benutzername', 'Passwort'); Die Auswahl der zu verwendenden Datenbank erfolgt bereits in der $dsn-Zeichenkette durch Angabe des Datenbanknamens. Der Rückgabewert von new PDO() ist ein PDO-Objekt, das für weitere SQL-Abfragen verwendet werden kann. Bei einem Fehler wird eine PDOException geworfen. ==== Syntax der PDO::query()-Anweisung ==== $stmt = $pdo->query('SQL-Abfrage'); Eine SQL-Abfrage wird über den Befehl PDO::query() ausgeführt. Wenn die SQL-Anweisung erfolgreich ist, gibt query() ein PDOStatement-Objekt zurück, mit dem Sie auf die abgerufenen Daten zugreifen können. Wenn ein Fehler auftritt, wird eine PDOException ausgelöst, wenn der Fehlermodus auf Exception gesetzt wurde. ==== Syntax der PDO::exec()-Anweisung ==== $ergebnis = $pdo->exec('SQL-Anweisung'); Verwenden Sie exec(), um SQL-Anweisungen auszuführen, die keine Ergebnisse zurückgeben (z.B. INSERT, UPDATE, DELETE). exec() gibt die Anzahl der betroffenen Zeilen zurück oder false, wenn ein Fehler auftritt. ==== Rückgabewerte ==== * PDO::query() gibt ein PDOStatement-Objekt zurück, wenn die Abfrage erfolgreich war, oder false, wenn ein Fehler aufgetreten ist. * PDO::exec() gibt die Anzahl der betroffenen Zeilen oder false bei einem Fehler zurück. ===== Beispiel db_connect.php ===== Nehme Verbindung zur Datenbank $database auf..."; $dsn = "mysql:host=$server;dbname=$database;charset=utf8"; $pdo = new PDO($dsn, $user, $passwort); // Fehlerbehandlung auf Exception setzen $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "
Verbindung zu Server $server hergestellt."; // SQL-Abfrage ausführen $sql = "SELECT * FROM $table"; $stmt = $pdo->query($sql); if ($stmt) { echo "
SQL-Anweisung erfolgreich..."; } } catch (PDOException $e) { // Fehlerbehandlung echo "
Konnte Verbindung nicht herstellen oder SQL-Anweisung ausführen: " . $e->getMessage(); } // Verbindung schließen $pdo = null; echo "
Verbindung zu Server $server beendet."; ?>