Suchen und Finden
Service
PHP5 - MySQL5 - PHP und MySQL verstehen und fehlerfrei anwenden
Matthias Kannengiesser, Caroline Kannengiesser
Verlag Franzis, 2010
ISBN 9783645200103 , 744 Seiten
Format PDF, OL
Kopierschutz Wasserzeichen
Einleitung
6
Inhaltsverzeichnis
10
Teil I – PHP
20
1 Internet-/Intranettechnologien
22
1.1 CGI – Common Gateway Interface
22
1.2 Dynamische Webseiten
23
1.2.1 PHP als Skriptsprache
24
1.3 Wie arbeitet PHP?
24
1.4 PHP & HTML
26
1.5 Wie funktioniert eine Webanwendung?
27
1.6 Software für Webanwendungen
28
1.7 Datenbanken
32
1.7.1 Kompatibilität zu SQL-Standards
33
1.7.2 Eigenschaften von MySQL
34
1.7.3 MySQL-Anwendungsgebiete
35
2 Installation und Konfiguration
38
2.1 Vorbereitung
38
2.2 Installation unter Windows
39
2.2.1 WAMP
39
2.2.2 Apache konfigurieren
40
2.2.3 Installation von PHP unter Windows
41
2.3 Installation unter Linux
42
2.3.1 LAMP
42
2.3.2 Installation von PHP als CGI-Programm
42
2.3.3 Installation von PHP als Apache-Modul
42
2.4 Installations-Kits
43
2.4.1 XAMPP
43
2.4.2 Apache 2 Triad
50
2.4.3 WAMP5
52
2.4.4 MAMP
53
2.4.5 Installations-Kits und Sicherheit
53
2.5 PHP-Konfiguration
54
2.5.1 Syntax der Init-Datei
54
2.5.2 Sprachoptionen
54
2.5.3 Leistungsbegrenzungen
55
2.5.4 Fehlerbehandlung und Protokollierung
55
2.5.5 Datenbehandlung
56
2.5.6 Pfade und Verzeichnisse
57
2.5.7 PHP-Erweiterungen für Windows
58
2.5.8 Moduleinstellungen
58
2.6 Sicherheit
60
2.6.1 Sicherheitsprobleme
60
2.6.2 Angriffsszenarien
61
2.7 Internet Service Provider und PHP
62
2.7.1 Zugangsdaten
62
2.7.2 Angebote von Providern
62
2.8 Überprüfen der Konfiguration
63
2.9 MySQL – Installation
65
2.9.1 Installation des MySQL-Datenbankservers
67
2.9.2 Installation auf Unix-/Linux-Systemen
67
2.9.3 Installation auf Windows-Systemen
70
2.9.4 Installation überprüfen
71
2.9.5 Kommandozeilenwerkzeuge von MySQL
72
2.9.6 Weitere Hilfsprogramme
74
2.9.7 Grafische MySQL-Clients
75
2.9.8 Anwendungen der MySQL-AB-Gruppe
85
2.9.9 Anwendung zur Datenbankmodellierung
90
2.10 Entwicklungsumgebungen
93
2.10.1 Entwicklungsumgebungen und Editoren
93
2.10.2 Zend Studio
94
2.10.3 Eclipse PDT
95
2.10.4 Aptana Studio PHP
95
2.10.5 NetBeans IDE
96
2.10.6 Adobe Dreamweaver CS3
97
2.10.7 Macromedia Dreamweaver 8
98
3 Sprachelemente und Syntax
100
3.1 Integration von PHP
100
3.1.1 Notationshinweise
101
3.1.2 Einbindung externer Skripts
101
3.2 Einführung in PHP
103
3.2.1 Ausdrücke
103
3.2.2 Anweisungen
106
3.2.3 Codezeile
107
3.2.4 Semikolons
107
3.2.5 Leerzeichen
109
3.2.6 Groß- und Kleinschreibung
110
3.2.7 Geschweifte Klammern
110
3.2.8 Runde Klammern
111
3.2.9 Schlüsselwörter
111
3.2.10 Zuweisungen
112
3.2.11 Echo-Befehl
113
3.2.12 Print-Befehl
113
3.2.13 Unterschied zwischen echo und print
114
3.2.14 Heredoc
114
3.2.15 Kommentare
116
3.3 Datentypen
118
3.3.1 Strings/Zeichenketten
118
3.3.2 Zahlen
123
3.3.3 Boolesche Werte
128
3.3.4 Objekte
131
3.3.5 Arrays
132
3.3.6 Resource Type
137
3.3.7 NULL
137
3.3.8 Besonderheiten der verschiedenen Typen
138
3.3.9 Typumwandlung
140
3.3.10 Datentypen bestimmen
143
3.4 Variablen
146
3.4.1 Was ist eine Variable?
146
3.4.2 Variablendefinition
147
3.4.3 L- und R-Wert
148
3.4.4 Benennen von Variablen
149
3.4.5 Variablenwerte
149
3.4.6 Umwandeln und Prüfen von Variablen
152
3.4.7 Gültigkeitsbereiche und Sichtbarkeit von Variablen
156
3.4.8 Dynamische Variablen
158
3.4.9 Vordefinierte Variablen
160
3.4.10 Einsatz von register_globals
162
3.5 Konstanten
166
3.5.1 Vordefinierte Konstanten
166
3.6 Operatoren
167
3.6.1 Operator-Rangfolge
168
3.6.2 Vorrang der Operatoren
169
3.6.3 Assoziativität der Operatoren
169
3.6.4 Arithmetische Operatoren
170
3.6.5 Zuweisungsoperator
171
3.6.6 Vergleichsoperatoren
174
3.6.7 Gleichheitsoperatoren
177
3.6.8 Logische Operatoren
179
3.6.9 Bit-Operatoren
181
3.6.10 String-Operator
185
3.6.11 Konditionaloperator
185
3.6.12 Gruppierungsoperator
186
3.6.13 Inkrement- bzw. Dekrementoperatoren
187
3.6.14 Objekterzeugungs-Operator
188
3.6.15 Array-Operatoren
189
3.6.16 Operatoren zur Programmausführung
190
3.6.17 Fehlerkontroll-Operatoren
190
3.7 Kontrollstrukturen
191
3.7.1 if-Anweisung
191
3.7.2 if-else-Anweisung
194
3.7.3 if-elseif-Anweisung
196
3.7.4 switch-case-Anweisung
198
3.7.5 while-Schleife
201
3.7.6 do-while-Schleife
203
3.7.7 for-schleife
204
3.7.8 foreach-Schleife
207
3.7.9 Verschachtelte Kontrollstrukturen
209
3.7.10 break
211
3.7.11 continue
211
3.8 Funktionen und Prozeduren
212
3.8.1 Funktionsargumente
213
3.8.2 Vorgabewerte für Parameter
215
3.8.3 Variable Argumentlisten
215
3.8.4 Rückgabewerte
217
3.8.5 Fehlercode als Rückgabewert
217
3.8.6 Dynamisch Funktionen erzeugen
218
3.8.7 Bedingte Funktionen
219
3.8.8 Verschachtelte Funktionen
219
3.8.9 Variablenfunktionen
221
3.8.10 Rekursive Funktionen
222
3.9 Referenzen in PHP
227
3.9.1 Was sind Referenzen?
227
3.9.2 Was leisten Referenzen?
227
3.9.3 Referenzen aufheben
229
3.9.4 Referenzen entdecken
230
3.10 Arrays
230
3.10.1 Was sind Arrays?
231
3.10.2 Terminologie
231
3.10.3 Arrays erzeugen
231
3.10.4 Arrays löschen
234
3.10.5 Mehrdimensionale Arrays
234
3.10.6 Arrayfunktionen
239
3.10.7 Funktionen für mehrere Elemente
246
3.10.8 Sortierfunktionen
251
3.10.9 Sonstige Arrayfunktionen
255
3.10.10 Nützliche Arrayfunktionen
258
3.10.11 Nützliche Arrayoperationen
279
3.11 Mathematische Funktionen
280
3.11.1 Umwandlungsfunktionen
280
3.11.2 Mathematische Konstanten
283
3.11.3 Zufallszahlen
283
3.12 Datums- und Zeitfunktionen
286
3.12.1 Kalenderfunktionen
286
3.12.2 Datumsfunktionen
288
3.12.3 Zeitfunktionen
292
3.13 Stringfunktionen
298
3.13.1 Ersetzen von Zeichen in Zeichenketten
298
3.13.2 Umwandeln, Teilen und Verbinden von Zeichenketten
300
3.13.3 Suchen und Vergleichen von Zeichenketten
303
3.13.4 Ausgabe von Zeichen und Zeichenketten
306
3.13.5 URL- und HTML-spezifische Zeichenkettenfunktionen
308
3.13.6 Zusätzliche Funktionen
312
4 Programmierung mit PHP
318
4.1 Formulare und PHP
318
4.1.1 GET und POST
318
4.1.2 Ermitteln von Formulardaten
320
4.1.3 Auswertung von Formularen
323
4.1.4 Formularelemente auf Existenz prüfen
326
4.1.5 Dynamische Formulare
327
4.1.6 Formulare über mehrere Seiten
330
4.1.7 Fragen zu Formularelementen
332
4.1.8 Prüfen auf fehlende oder fehlerhafte Eingaben
334
4.1.9 Formulardaten und globale Servervariablen
335
4.2 Daten via URL
337
4.2.1 Kodierung von Daten
338
4.2.2 Achtung – Escape-Zeichen
339
4.2.3 Arbeiten mit dem $QUERY_STRING
339
4.2.4 Gleichlautende Variablen
341
4.3 Cookies via PHP
342
4.3.1 Spezifikation von Cookies
342
4.3.2 Cookies in PHP
344
4.3.3 Cookies löschen
350
4.4 Session-Management via PHP
350
4.4.1 Konfiguration des Session-Moduls
351
4.4.2 Session-Funktionen in PHP
353
4.4.3 Weitergabe der Session-ID über Cookies
357
4.4.4 Weitergabe der Session-ID über GET/POST
358
4.4.5 Weitergabe der Session-ID über header()
359
4.5 Überprüfung des Verbindungsstatus
359
4.6 Servervariablen
360
4.6.1 CGI-Umgebung
360
4.6.2 Erzeugen von eigenen Logfiles
361
4.7 Dateisystem via PHP
363
4.7.1 Informationen über Dateien und Verzeichnisse
363
4.7.2 Verzeichnisoperationen
366
4.7.3 Berechtigungen von Dateien und Verzeichnissen
367
4.7.4 Auslesen von Verzeichnissen
369
4.7.5 Dateioperationen und Dateifunktionen
371
4.7.6 Lesen und Schreiben von Dateien
373
4.7.7 Erzeugen und Schreiben von Dateien
378
4.7.8 Kopieren, Umbenennen und Löschen von Dateien
380
4.7.9 Serialisierung von Daten
381
4.7.10 Verriegelung von Dateien
382
4.7.11 Auslesen von CSV-Dateien
383
4.7.12 Nützliche Dateioperationen
384
4.7.13 Nützliche Verzeichnisoperationen
390
4.7.14 Datei-Upload via HTML-Formular
394
5 Objektorientierte Programmierung mit PHP 5
404
5.1 Der Umgang mit Klassen und Objekten
404
5.1.1 Klassendefinition in PHP 5
405
5.1.2 Objekte erzeugen und verwenden
406
5.1.3 Konstruktoren und Destruktoren
407
5.1.4 Zugriffsbeschränkung (Datenkapselung)
408
5.1.5 OOP – Rundgang
409
5.1.6 Objekte klonen
412
5.1.7 Klassenvererbung in PHP 5
416
5.1.8 Finale Klassen und Methoden
417
5.1.9 Abstraktion von Klassen und Methoden
417
5.1.10 Interface – Objektschnittstellen
420
5.1.11 Statische Eigenschaften und Methoden
422
5.1.12 Verweisoperator/Gültigkeitsbereichsoperator (::)
424
5.1.13 Klassenkonstanten
426
5.1.14 Objekte – Referenzen und Kopien
427
5.1.15 Magische Methoden (Interzeptormethoden)
428
5.1.16 Typen-Hinweise (class type hints)
433
5.1.17 Ausnahmebehandlung
435
5.1.18 Dereferenzierung von Objekten
440
5.1.19 Einsatz von instanceof
442
5.1.20 Neue Konstante __METHOD__
442
5.1.21 Entwurfsmuster (Design Patterns)
444
5.1.22 Anpassung von PHP 4 auf PHP 5
447
5.1.23 Praxis – Lebewesen
448
6 Neuerungen in PHP 5.3
452
6.1 Syntax
452
6.1.1 Heredoc-Syntax
452
6.1.2 Nowdoc-Syntax
453
6.1.3 Lambda-Funktionen
453
6.1.4 Closures
455
6.2 Funktionen und Parameter
459
6.2.1 Funktionen
459
6.2.2 Parameter
463
6.2.3 Konstanten
464
6.3 Veraltet und wiederbelebt
465
6.3.1 Veraltet
465
6.3.2 Wiederbelebt
466
6.4 Objektorientierte Programmierung
466
6.4.1 Namespaces (Namensräume)
466
6.4.2 Late Static Bindings
472
6.4.3 Exkurs – Geschachtelte Exceptions
476
6.4.4 Exkurs – Funktionsobjekte
476
6.5 Datenbankspezifische Neuerungen
477
6.5.1 Sqlite3
477
6.5.2 Client-/Server-Bibliothek mysqlnd
477
6.5.3 Standard PHP Library (SPL)
478
6.5.4 Garbage Collection
478
6.5.5 Erweiterungen intl und fileinfo
480
7 Datenbankprogrammierung
482
7.1 MySQL und PHP
482
7.1.1 MySQLi-Installation
483
7.1.2 MySQLi – erste Gehversuche
484
7.1.3 MySQLi und SQL-Abfragen
485
7.1.4 Referenz zur MySQLi-Unterstützung
488
7.1.5 Referenz zur MySQL-Unterstützung
491
7.2 Verwaltung von MySQL-Benutzern
496
7.2.1 Anlegen und Bearbeiten von Benutzern
497
7.3 PHP und MySQL-Verbindung
499
7.4 PHP und MySQL-Zugriffe
503
7.4.1 Datenbank erstellen
503
7.4.2 Datenbanktabelle erstellen
504
7.4.3 Datenverwaltung
507
7.4.4 Datenbanken und Tabellen löschen
520
7.4.5 Datenbanktabellen ändern
521
7.4.6 Verknüpfte Tabellen (WHERE/JOIN)
524
7.4.7 Tabellen vereinigen (UNION)
534
7.5 Backups von Daten und Tabellen
538
7.5.1 Sichern von Struktur und Daten
539
7.5.2 Ausführung von gespeicherten SQL-Befehlen
540
Teil II – MySQL
542
8 Installation
544
8.1 MySQL-Server installieren
545
8.1.1 Installation auf Unix-/Linux-Systemen
545
8.1.2 Installation auf Windows-Systemen
548
8.1.3 Installation überprüfen
550
8.1.4 Die Konfigurationsdatei my.cnf / my.ini
551
8.1.5 Zeichensätze/Lokalisierung
552
8.1.6 MySQL-Installation aktualisieren
554
8.1.7 Mehrere MySQL-Server auf einem Rechner
554
8.1.8 LAMP (Linux-Apache-MySQL-PHP)
556
8.1.9 WAMP (Windows-Apache-MySQL-PHP)
557
8.2 MySQL bei Internet-Service-Providern
558
8.2.1 Angebote
558
8.2.2 Funktionsumfang von MySQL feststellen
558
8.2.3 Server-Sharing (Webspace)
559
8.2.4 Eigener Webserver mit MySQL
560
8.3 Kommandozeilenwerkzeuge von MySQL
561
8.3.1 mysql – die SQL-Shell
561
8.3.2 mysqladmin
563
8.3.3 mysqlshow
563
8.3.4 Weitere Hilfsprogramme
563
9 Datenbankentwurf
566
9.1 Phasen der Datenbankentwicklung
566
9.2 Datenbankmanagementsysteme
567
9.3 Datenmodell
568
9.4 Datenbankentwurf mit ERM
569
9.5 Relationales Datenmodell
572
9.6 Primärschlüssel
573
9.7 Fremdschlüssel und referenzielle Integrität
573
9.8 Optimierung des Datenmodells
575
9.9 Implementierung und Nutzung von SQL
581
9.9.1 DCL-Befehle
581
9.9.2 DML-Befehle
581
9.9.3 DDL-Befehle
582
10 Datenbanken und Tabellen
584
10.1 Datentypen
585
10.1.1 Zeichenketten-Datentypen
588
10.1.2 Numerische Datentypen
589
10.1.3 Datums- und Zeitdatentypen
590
10.1.4 Aufzählungen
591
10.1.5 Datentyp-Mapping
591
10.1.6 Datentypenübersicht
592
10.2 Datenbank anlegen und löschen
595
10.3 Tabellen
598
10.3.1 Tabellen anlegen
598
10.3.2 Schlüsselfelder für Tabellen
600
10.3.3 Indizes für Tabellen
601
10.3.4 Tabellentypen
603
10.3.5 Autowert definieren, Tabellen kopieren
612
10.3.6 Fremdschlüssel (FOREIGN KEY)
613
10.3.7 Ändern des Tabellenlayouts (ALTER TABLE)
614
10.3.8 Tabellen umbenennen und löschen
618
11 Arbeiten mit Daten
620
11.1 Benutzerwerkzeuge und -schnittstellen
620
11.2 Daten einfügen, ändern und löschen
621
11.2.1 Einfügen von Daten in Tabellen
621
11.2.2 Daten aktualisieren
624
11.2.3 Daten löschen
626
11.2.4 Daten aus anderen Datenbanken bzw. Programmen übernehmen
628
11.3 Befehle für die Datenausgabe
636
11.3.1 Abfragen mit SELECT
636
11.3.2 Vergleichsoperatoren
640
11.3.3 Abfragen mit logischen Operatoren
642
11.3.4 Mathematische Funktionen
643
11.3.5 Datums- und Zeitfunktionen
643
11.3.6 Zeichenketten
650
11.3.7 Auswahlanweisungen
655
11.3.8 Zählen
657
11.3.9 Tabellen vereinigen (UNION)
658
11.3.10 Verknüpfte Tabellen
659
11.3.11 Ausgabe sortieren
664
11.3.12 Deutsche Sortierung
665
11.3.13 Ausgabedatei über SELECT erzeugen
666
11.3.14 Abfragen analysieren
666
11.3.15 NULL-Marken
668
11.4 Unscharfe Suche
669
11.4.1 Suche mit LIKE und IN
669
11.4.2 Volltextsuche
670
11.4.3 Soundex
673
11.4.4 Reguläre Ausdrücke
674
11.5 Abfragen beschleunigen
677
11.5.1 Query Cache
677
11.6 Transaktionen
679
11.7 Benutzerdefinierte Funktionen
680
11.7.1 CREATE FUNCTION – Erzeugen von Funktionen
681
11.7.2 DROP FUNCTION – Löschen von Funktionen
682
11.8 Vorbereitete Anweisungen
682
12 Verwaltung und Sicherheit
684
12.1 Laufenden Betrieb überwachen
684
12.2 Protokollierung von Servervorgängen
686
12.2.1 Das Fehlerprotokoll
686
12.2.2 Laufende Betriebprotokollierung
686
12.3 Tabellenüberprüfung und -wartung
690
12.3.1 Tabellenüberprüfung
690
12.3.2 MyISAM-Tabellen reparieren
692
12.3.3 Tabellen optimieren
693
12.4 Sicherheit
695
12.4.1 Passwortsystem
695
12.4.2 Daten verschlüsselt speichern
704
12.4.3 SSH-Verbindungen
705
12.4.4 SSL-verschlüsselte Verbindungen
706
12.5 Backup und Datensicherung
710
12.5.1 Grundsätzliche Strategien für die Datensicherung
710
12.5.2 Backup mit mysqldump
712
12.5.3 Backup durch Datenbankkopie
715
12.5.4 Backup mit BACKUP TABLE
715
12.5.5 Datensicherung mit SELECT INTO OUTFILE
716
12.5.6 Replikationsmechanismen von MySQL
716
12.6 Uploads und Datensicherung bei Providern
718
12.7 Datenbanktests durchführen
720
Teil III – Anhänge
722
A Sicherheit
724
A.1 Schwachstellen und Gefahren
724
A.2 Webanwendungen und Sicherheit
726
B CD-ROM und www.buch.cd
728
B.1 Kapitel
728
B.2 Installations-Kits
728
B.3 PHP-Entwicklungsstudio
728
B.4 MySQL-Tools
728
B.5 Bonuskapitel
728
B.6 Zusätzlich auf www.buch.cd
729
Nachwort
730
Stichwortverzeichnis
732