PHP 5.3 Fortgeschrittene Techniken der Web ?· 3.3 MySQL-Abfragen.....23 3.4 Rückgabe aus MySQL-Abfrage…

  • Published on
    17-Sep-2018

  • View
    212

  • Download
    0

Embed Size (px)

Transcript

  • PHP5.3 Fortgeschrittene Techniken der Web-Programmierung

    GPHP53F

    Andreas Dittfurth

    1. Ausgabe, April 2010

  • I PHP 5.3 - Fortgeschrittene Techniken der Web-Programmierung

    2 HERDT-Verlag

    1 Bevor Sie beginnen.....................................4

    1.1 Zielgruppe und Vorkenntnisse ...................4 1.2 Verwendete Software.................................4 1.3 Anmerkungen zur neuen

    PHP-Version 5.3 ...........................................5 1.4 Aufbau und Konventionen.........................5

    2 MySQL und phpMyAdmin ..........................8 2.1 XAMPP: PHP und MySQL.............................8 2.2 phpMyAdmin...............................................8 2.3 Mit Datenbanken arbeiten.......................10 2.4 Mit Tabellen arbeiten ...............................12 2.5 Mit Daten arbeiten....................................14 2.6 bung ........................................................18

    3 Verwaltung von MySQL- Datenbanken mit PHP...............................20 3.1 Steuerung ber PHP-Skripte .....................20 3.2 Verbindungsaufnahme mit MySQL ..........20 3.3 MySQL-Abfragen.......................................23 3.4 Rckgabe aus MySQL-Abfrage

    auswerten ..................................................24 3.5 Fallbeispiel: skriptgesteuerte

    Datenmanipulation...................................26 3.6 Steuerung durch Formulare......................33 3.7 Allgemeine Informationen sammeln .......37 3.8 bung ........................................................41

    4 Arbeit mit MySQL-Datenbanken im Internet.................................................44 4.1 Verbindungsaufnahme .............................44 4.2 phpMyAdmin beim Provider ....................47 4.3 Import von Datenbankdaten beim

    Provider......................................................50 4.4 Automatisierung durch PHP .....................50

    5 Grundlagen der objektorientierten Programmierung (OOP) ............................52 5.1 OOP allgemein ..........................................52 5.2 OOP in PHP ................................................52 5.3 Eigene Kenntnisstufen hin zur OOP.........53 5.4 Praktische Umsetzung: zwei

    logische Bereiche.......................................53 5.5 Klassen - die Bauplne fr Objekte..........53 5.6 Objekte erstellen.......................................53 5.7 Eigenschaften ............................................54 5.8 Das Schlsselwort $this ..........................56 5.9 Klassenvariablen und -konstanten ...........56

    5.10 Methoden.................................................. 58 5.11 Setter- und Getter-Methoden.................. 60 5.12 Konstruktor ............................................... 61 5.13 Destruktor ................................................. 62 5.14 Objekte klonen ......................................... 65 5.15 Trennung von Code und Design .............. 67 5.16 Wichtige Unterschiede zu PHP 4.x ........... 67 5.17 bung........................................................ 68

    6 Weitere Mglichkeiten der OOP mit PHP 5.3 .................................................70 6.1 Magische Methoden................................. 70 6.2 Abgeleitete Klassen .................................. 74 6.3 Konstruktoren und Destruktoren

    bei Vererbung........................................... 77 6.4 Vererbung von Eigenschaften und

    Methoden.................................................. 78 6.5 Methoden berladen oder

    berschreiben ........................................... 80 6.6 Magische Konstanten ............................... 82 6.7 Typ Operator instanceof ...................... 82 6.8 Klassen- und Objektfunktionen ............... 83 6.9 Weiterfhrende Konzepte in der OOP.... 85 6.10 Die PEAR-Bibliothek ................................. 92 6.11 bungen.................................................... 96

    7 OOP und Datenbanken..............................98 7.1 MySQL Improved Extension (MySQLi)...... 98 7.2 PHP Data Objects (PDO).......................... 107 7.3 bungen.................................................. 112

    8 SQLite als Datenbankalternative ...........114 8.1 berblick ber SQLite............................. 114 8.2 SQLite mit PHP verwenden..................... 116 8.3 Praxis: einfache Beispieldatenbank

    mit SQLite................................................ 119 8.4 Datenaustausch mit MySQL.................... 121 8.5 SQLite objektorientiert........................... 122 8.6 Weitere Informationen zu SQLite.......... 124 8.7 bungen.................................................. 124

    9 Behandlung von Fehlern und Ausnahmen ......................................126 9.1 Fehlerprvention durch

    Namensrume......................................... 126 9.2 Behandlung von Fehlern

    (Error Handling) ...................................... 129 9.3 Unterdrcken von Fehlermeldungen

    mit dem Operator @................................ 130

  • Inhalt I

    HERDT-Verlag 3

    9.4 Fehleranzeige mit error_reporting()steuern................ 131

    9.5 Fehlerbehandlung mit set_error_handler() steuern........... 133

    9.6 Einsatz mehrerer Error-Handler............. 136 9.7 Eigene Fehler mit trigger_error()

    auslsen................................................... 138 9.8 Behandlung von Ausnahmen

    (Exception Handling).............................. 139 9.9 bungen ................................................. 144

    10 Sicherheit.................................................146 10.1 Sicherheit ist relativ ................................ 146 10.2 Grundregeln zum einfachen Schutz

    Ihrer Skripte ............................................ 147 10.3 Die hufigsten Angriffsarten ................. 154 10.4 bung...................................................... 165

    11 Regulre Ausdrcke................................166 11.1 Was sind regulre Ausdrcke?............... 166 11.2 Aufbau und Funktionsweise

    regulrer Ausdrcke............................... 166 11.3 Regulre Ausdrcke in PHP.................... 172 11.4 Weitere Informationen zu

    regulren Ausdrcken............................ 176 11.5 bung...................................................... 177

    Anhang: Installation und Konfiguration der Software.................................................178

    A.1 Testumgebung XAMPP: Installation und Konfiguration ..................................178

    A.2 Mit XAMPP arbeiten ...............................180 A.3 Texteditor fr PHP - Notepad++:

    Installation und Konfiguration............182 A.4 Mit den XAMPP-Konfigurationsdateien

    arbeiten ...................................................185 A.5 Zugriffsrechte von MySQL mit

    phpMyAdmin regeln...............................186 A.6 Globale Zugriffsrechte des MySQL-

    Administrators root ndern ................189 A.7 FTP-Programm FileZilla: Installation

    und Konfiguration ..................................190

    Stichwortverzeichnis ...................................196

  • 3 PHP 5.3 - Fortgeschrittene Techniken der Web-Programmierung

    20 HERDT-Verlag

    3 Verwaltung von MySQL-Datenbanken mit PHP

    In diesem Kapitel erfahren Sie

    wie Sie Datenbanken mit PHP steuern und verwalten wie Sie Datenstze anzeigen, ndern, hinzufgen und lschen wie Ihre Anwender Daten individuell ber Formulare verwalten Tipps und Tricks zur Bearbeitung von Daten

    Voraussetzungen

    SQL-Grundkenntnisse

    3.1 Steuerung ber PHP-Skripte

    Im letzten Kapitel haben Sie phpMyAdmin als administratives Werkzeug fr MySQL-Datenbanken kennen-gelernt und eine umfangreiche Beispieltabelle in eine Datenbank importiert. Darber hinaus konnten Sie SQL-Grundlagenkenntnisse erwerben bzw. auffrischen und praktisch in phpMyAdmin anwenden. Der Schwerpunkt dieses Kapitels liegt in der Steuerung von MySQL-Datenbanken mithilfe von PHP. Sie haben eine funktionstchtige Datenbank und bentigen keine weiteren Tools auer Ihren PHP-Skripten zur Bearbei-tung und Verwaltung Ihrer Daten.

    3.2 Verbindungsaufnahme mit MySQL

    Die Verbindungsaufnahme von PHP zur Verwaltung einer MySQL-Datenbank erfolgt in zwei Schritten. Zuerst wird eine Verbindung zum MySQL-Server hergestellt, danach die gewnschte Datenbank ausgewhlt. Voraus-setzung sind entsprechende Zugriffsberechtigungen, die der Benutzer haben muss. PHP mit dem MySQL-Server verbinden

    Eine Verbindung zum MySQL-Server erfolgt direkt aus dem PHP-Skript. Folgende Funktionen werden zum Aufbau und Beenden einer Verbindung zu einem MySQL-Server verwendet:

    mysql_connect(); Verbindung zum MySQL-Server aufnehmen mysql_close(); Verbindung zum verbundenen MySQL-Server beenden

    Syntax der Funktion mysql_connect() mysql_connect ([Server[:Port][, Benutzername[, Passwort[, neue Verbindung]]]]);

    Zur Herstellung einer Verbindung geben Sie den Namen des gewnschten Datenbank-Servers an, auf

    den Sie zugreifen wollen. Optional ist die Angabe eines Ports zur Verbindung mit dem Server. Standardmig wird Port 3306 verwendet. Die Parameter Benutzername und das dazugehrige Passwort authentifizieren den Benutzer am Datenbank-Server. Der Parameter neue Verbindung kann die Werte TRUE oder FALSE annehmen und steuert, ob ein zweiter Aufruf von mysql_connect() mit identischen Parametern eine neue Verbindung aufbauen darf oder nicht.

    Alle Angaben sind optional. Werden keine Parameter angegeben, wird als Server localhost ange-nommen, als Benutzername der Name des Benutzers, dem der Server-Prozess gehrt (Standard nach XAMPP-Installation ist ODBC), sowie ein leeres Passwort.

  • Verwaltung von MySQL-Datenbanken mit PHP 3

    HERDT-Verlag 21

    Als Rckgabewert erhalten Sie eine Verbindungskennung, die Sie in einer Variablen zwischenspeichern knnen. Konnte keine Verbindung hergestellt werden, wird der Wert FALSE zurckgeliefert. Die Verbindungskennung (sogenanntes Handle oder Datenbankhandle) bentigen Sie vor allem dann, wenn Sie mehrere Datenbankverbindungen in einem PHP-Skript aufbauen. Weitere Datenbanksteuerungsbefehle mssen dann eindeutig den einzelnen Verbindungen zugewiesen werden.

    Schlgt mysql_connect() fehl, wird nur eine Warnung ausgegeben, das Skript wird weiter ausgefhrt. Dies ist hufig nicht gewnscht, da jeder weitere Befehl zur Steuerung von Datenbanken damit fehlschlgt. Es empfiehlt sich der Einsatz der Funktion mysql_connect() in Kombination mit or die("Meldung"). mysql_connect() or die("Meldung");

    Dieser or-Zweig wird dann ausgefhrt, wenn die Datenbankverbindung fehlgeschlagen ist. Die Ausfhrung des Skripts wird nach der Ausgabe des Parameters Meldung abgebrochen. Beispiel: mysql_connect("localhost", "root", "") or die("Verbindung konnte nicht hergestellt werden.");

    Syntax der Funktion mysql_close() mysql_close([Verbindungskennung]);

    Diese Funktion beendet eine bestehende Verbindung mit einem MySQL-Server. Wenn Sie bei mehreren

    geffneten Verbindungen eine bestimmte Verbindung beenden mchten, geben Sie den optionalen Parameter Verbindungskennung an. Wenn Sie diesen Parameter nicht angeben, wird automatisch die zuletzt geffnete Verbindung geschlossen.

    PHP schliet automatisch mit Beendigung des Skripts die Server-Verbindung. Sie sollten dennoch eine Verbindung immer selbst schlieen, um genutzte Ressourcen sicher - und mglichst frhzeitig - freizugeben.

    Die gewnschte Datenbank auswhlen

    Nach einer erfolgreichen Verbindung zum MySQL-Server bestimmen Sie mithilfe von mysql_select_db(), welche Datenbank genutzt werden soll.

    mysql_select_db(); Auswahl der Datenbank

    Syntax der Funktion mysql_select_db() mysql_select_db(Datenbankname[, Verbindungskennung]);

    Die Auswahl der zu nutzenden Datenbank erfolgt ber deren Namen als Parameterangabe Daten-

    bankname.

    Bestehen ber mysql_connect() mehrere Verbindungen zu einer oder mehreren Datenbanken, ist die entsprechende Verbindungskennung anzugeben. Die Angabe der Verbindungskennung ist nicht ntig, wenn Sie mit nur einer Datenbankverbindung arbeiten.

    Der Rckgabewert ist bei Erfolg TRUE, ansonsten FALSE. Beispiel: db.inc.php

    Die Verbindungsaufnahme zum lokalen MySQL-Server und die Auswahl der gewnschten Datenbank erfol-gen in einem Schritt. Die Zugangsdaten sollen nicht in jedem Skript gespeichert werden, das auf die Daten-bank zugreifen will. Es wird eine wiederverwendbare Datei erstellt, die in jedes beliebige Skript eingebunden werden kann. Durch Definition einer allgemeinen Funktion kann die Datei fr den Zugriff mit beliebigen Zugangsdaten verwendet werden.

  • 3 PHP 5.3 - Fortgeschrittene Techniken der Web-Programmierung

    22 HERDT-Verlag

    Es wird eine Funktion verbindung_mysql() definiert, die die Verbindungsaufnahme zur gewnschten

    Datenbank vornehmen soll. Der Parameter $datenbank ist bei jedem Aufruf anzugeben. Die weiteren Parameter $server, $user und $pass sind mit Vorgabewerten belegt, sodass sie in der Testumgebung dieses Buches weggelassen werden knnen. Sind andere Werte gewnscht, z. B. zur Arbeit mit Ihren Daten im Internet, ndern Sie die Werte der Parameter in der Funktion entsprechend ab oder geben die Daten beim Aufruf der Funktion an.

    In der Funktion wird eine Variable $verbindung, die die Verbindungskennung beinhaltet (siehe ), als globale Variable deklariert. Die Variable steht damit auch auerhalb der Funktion zur Verfgung. Somit kann im aufrufenden Skript die Variable als Parameter der Funktion mysql_close($verbindung) zur Beendigung der Verbindung mit der Datenbank verwendet werden.

    Die Verbindungskennung (Handle), die bei der erfolgreichen Verbindung zurckgeliefert wird, wird in der Variablen $verbindung gespeichert. Das Zeichen @ sorgt dafr, dass im Fehlerfall keine Meldung am Bildschirm erscheint. Sind die Anmeldedaten nicht korrekt bzw. ist der MySQL-Server nicht gestartet, kann keine Verbindung hergestellt werden. In diesem Fall wird der Rckgabewert FALSE geliefert, der den mit or eingeleiteten Zweig auslst. Dort wird ber die Funktion die() eine Fehlermeldung ausge-geben und das aktuelle Skript beendet.

    Im letzten Schritt wird die gewnschte Datenbank ausgewhlt. Auch hier erfolgt im Fehlerfall ein Ab-bruch des Skriptes mit einer Fehlermeldung.

    Beispiel: verbindung.php

    Die vorbereitete Datei db.inc.php wird in einem Skript verwendet. Danach ist im Erfolgsfall die Datenbank ber PHP ansprechbar.

    Die Datei db.inc.php wird eingebunden. Damit steht im Skript die dort definierte Funktion

    verbindung_mysql() zur Verfgung.

    Mithilfe der Funktion verbindung_mysql() erfolgt die Verbindungsaufnahme zum lokalen MySQL-Server. Dort wird die Datenbank bankleitzahlen ausgewhlt. Mchten Sie mit denselben Anmeldedaten eine andere Datenbank auswhlen, geben Sie den gewnschten Namen der Datenbank als Parameter an. Wollen Sie sich mit anderen Daten oder an einem anderen Server anmelden, verwenden Sie die Funktion mit allen vier definierten Parametern in der vorgesehenen Reihenfolge der Parameter: $datenbank, $server, $user und $pass.

    Die Verbindung zur Datenbank wird mithilfe der Funktion mysql_close() beendet.

  • V...

Recommended

View more >