PHP – Endlich objektorientiert- P5
Số trang: 30
Loại file: pdf
Dung lượng: 812.88 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
PHP – Endlich objektorientiert- P5: Die Zeiten, in denen man die Skriptsprache PHP nur dazu verwendete, um dynamische HTML-Tabellen aus einer MySQL-Datenbank zu erstellen, sind vorüber. Heutzutage werden auch große Projekte in PHP realisiert, es existieren Programmier-Frameworks wie Zend Studio 7.0 und große Content Management Systeme wie Typo3 sind in PHP entwickelt worden.
Nội dung trích xuất từ tài liệu:
PHP – Endlich objektorientiert- P5 2 – Die Sprache PHP: Prozedural Profitipp In diesem Buch wird als Benutzer stets root ohne Kennwort vergeben. Das ist aus Gründen der Sicherheit natürlich nicht akzeptabel und darf lediglich zu Testzwecken verwendet werden. Mit diesen Benutzerrechten können bei einer manipulierten Ein- gabe in das Skript ganze Tabellen gelöscht werden, unter anderem auch die Tabelle der möglichen Benutzer des MySQL-Servers. Auf diese Weise kann also der gesamte Datenbankserver lahmgelegt werden. Oder ein Angreifer kann Zugriff auf persönli- che Daten nehmen, die nach dem Datenschutzgesetz nicht zugreifbar sein dürften. Die Verwendung von Administratorrechten für diese Zugriffe stellt dann eine fahr- lässige Handlung dar, bei der Sie als Programmierer unter Umständen haftbar gemacht werden können.Abschließend kapselt der erste Teil der DBzugriff.inc.php die Funktion DB_error dieMySQL-Funktion mysql_error, bei der detailliertere Angaben über die letzte Fehlermel-dung beim Datenbankzugriff ausgegeben werden können. Sie fragen sich vielleicht, auswelchem Grund eine einzelne Funktion in einer anderen Funktion mit allgemeineremNamen verpackt wird. Der Grund dafür liegt darin, dass alle Funktionen, die einenBezug zum MySQL-Server haben, ausschließlich in einer einzelnen Datei abgelegt seinsollen. Das bildet die Datenzugriffsschicht. Ihre Anwendung verwendet dann dieseDatei, um wiederum Funktionen der Fachlogik verwenden zu können: Erweiterte FunktionenDie für die Fachlogik interessanten Funktionen des Datenzugriffs werden im zweitenTeil der DBzugriff.inc.php realisiert. Dabei werden drei Dienste angeboten, die Daten ausder Datenbank auslesen: DB_AGs() liest alle Aktiengesellschaften aus der Datenbank und gibt die Namen als Datenfeld von Zeichenketten zurück. DB_MW($AG) liefert den Mittelwert aller Börsenkurse einer Aktiengesellschaft, deren Name als Parameter übergeben wird. DB_Kurs($AG,$tag) gibt einen einzelnen Aktienkurs der einzugebenden Aktienge- sellschaft an einem bestimmten Tag aus.Alle drei Dienste verwenden den PHP-Befehl mysql_query, der eine Zeichenkette alsParameter erhält. Diese Zeichenkette enthält einen SQL-Abfragebefehl, der mit SELECTbeginnt. Im Anschluss daran werden die Spalten aus der Datenbank angegeben, die manin der Ausgabe verwenden möchte. Das teilweise eingesetzte Schlüsselwort DISTINCTsorgt dafür, dass keine Datensätze im Ergebnis doppelt vorhanden sind. Der FROM-Teileines SQL-Befehls gibt den Namen der Datenbanktabelle an, aus der man Daten auslesenwill. Durch Angabe eines WHERE-Teils kann das Ergebnis eingeschränkt werden. So gibtder Befehl SELECT ID FROM ag WHERE name=.$AG. nur die ID einer Aktiengesell-schaft zurück, deren Name gleich dem Namen des Parameters $AG ist. Da die Namen alsZeichenkette abgespeichert werden, muss der Parameter im SQL-Befehl in Hochkom-mata gesetzt werden. Mit dem Zusatz ORDER BY sortieren Sie das Ergebnis nach eineroder mehreren Spalten, im Fall der Funktion DB_AGs() nach der ID, und zwar in aufstei-gender Reihenfolge. Die aufsteigende Reihenfolge wird mit ASC (engl.: ascending) fest-gelegt. Eine absteigende Reihenfolge könnten Sie mit DESC (engl.: descending) angeben.Die Funktion DB_MW($AG) zeigt, dass Sie mehrere SQL-Befehle schachteln können. Mitdem inneren SELECT-Befehl holen Sie sich die ID zu einem gegebenen Namen einerAktiengesellschaft. Diese ID wird als Einschränkung in der WHERE-Klauses beimZugriff auf eine andere Datenbanktabelle verwendet, da Sie ja nur den Mittelwert einerAktiengesellschaft mit dieser angegebenen ID berechnet haben wollen. GrundlegendeFunktionen wie eine Addition oder eine Mittelwertberechnung kann der Datenbankser-ver selbst durchführen. MySQL bietet hier die Funktion avg(value) an, die den Mittelwertdirekt als Ergebnis ausgibt.In allen Fällen befindet sich das Ergebnis der SQL-Abfrage in einer lokalen Variablennamens $data. Das Ergebnis einer SQL-Abfrage wird als Resultset bezeichnet. Nun müs-sen Sie dieses Ergebnis auswerten. Dazu bietet PHP einige Befehle an.Mit mysql_fetch_array wird eine Zeile nach der anderen als Datenfeld zurückgegeben. Mitder Angabe von MYSQL_ASSOC wird ein assoziatives Feld erzeugt. Aus der Daten-banktabelle ag mit ID=5 und name=BMW ergeben sich die Feldelemente $datensatz[ID]=5und $datensatz[name]=”BMW”. Dieses Datenfeld kann dann von der Fachlogik weiterverarbeitet werden.Auch mit dem Befehl mysql_fetch_row holen Sie eine Zeile aus der Ergebnistabelle. Beider Mittelwertberechnung ist lediglich ein einziger Wert in der Ergebnistabelle. Die Zeilewird über mysql_fetch_row ermittelt und liefert ein numerisches Datenfeld mit einem ein-PHP – Endlich objektorientiert 91 2 – ...
Nội dung trích xuất từ tài liệu:
PHP – Endlich objektorientiert- P5 2 – Die Sprache PHP: Prozedural Profitipp In diesem Buch wird als Benutzer stets root ohne Kennwort vergeben. Das ist aus Gründen der Sicherheit natürlich nicht akzeptabel und darf lediglich zu Testzwecken verwendet werden. Mit diesen Benutzerrechten können bei einer manipulierten Ein- gabe in das Skript ganze Tabellen gelöscht werden, unter anderem auch die Tabelle der möglichen Benutzer des MySQL-Servers. Auf diese Weise kann also der gesamte Datenbankserver lahmgelegt werden. Oder ein Angreifer kann Zugriff auf persönli- che Daten nehmen, die nach dem Datenschutzgesetz nicht zugreifbar sein dürften. Die Verwendung von Administratorrechten für diese Zugriffe stellt dann eine fahr- lässige Handlung dar, bei der Sie als Programmierer unter Umständen haftbar gemacht werden können.Abschließend kapselt der erste Teil der DBzugriff.inc.php die Funktion DB_error dieMySQL-Funktion mysql_error, bei der detailliertere Angaben über die letzte Fehlermel-dung beim Datenbankzugriff ausgegeben werden können. Sie fragen sich vielleicht, auswelchem Grund eine einzelne Funktion in einer anderen Funktion mit allgemeineremNamen verpackt wird. Der Grund dafür liegt darin, dass alle Funktionen, die einenBezug zum MySQL-Server haben, ausschließlich in einer einzelnen Datei abgelegt seinsollen. Das bildet die Datenzugriffsschicht. Ihre Anwendung verwendet dann dieseDatei, um wiederum Funktionen der Fachlogik verwenden zu können: Erweiterte FunktionenDie für die Fachlogik interessanten Funktionen des Datenzugriffs werden im zweitenTeil der DBzugriff.inc.php realisiert. Dabei werden drei Dienste angeboten, die Daten ausder Datenbank auslesen: DB_AGs() liest alle Aktiengesellschaften aus der Datenbank und gibt die Namen als Datenfeld von Zeichenketten zurück. DB_MW($AG) liefert den Mittelwert aller Börsenkurse einer Aktiengesellschaft, deren Name als Parameter übergeben wird. DB_Kurs($AG,$tag) gibt einen einzelnen Aktienkurs der einzugebenden Aktienge- sellschaft an einem bestimmten Tag aus.Alle drei Dienste verwenden den PHP-Befehl mysql_query, der eine Zeichenkette alsParameter erhält. Diese Zeichenkette enthält einen SQL-Abfragebefehl, der mit SELECTbeginnt. Im Anschluss daran werden die Spalten aus der Datenbank angegeben, die manin der Ausgabe verwenden möchte. Das teilweise eingesetzte Schlüsselwort DISTINCTsorgt dafür, dass keine Datensätze im Ergebnis doppelt vorhanden sind. Der FROM-Teileines SQL-Befehls gibt den Namen der Datenbanktabelle an, aus der man Daten auslesenwill. Durch Angabe eines WHERE-Teils kann das Ergebnis eingeschränkt werden. So gibtder Befehl SELECT ID FROM ag WHERE name=.$AG. nur die ID einer Aktiengesell-schaft zurück, deren Name gleich dem Namen des Parameters $AG ist. Da die Namen alsZeichenkette abgespeichert werden, muss der Parameter im SQL-Befehl in Hochkom-mata gesetzt werden. Mit dem Zusatz ORDER BY sortieren Sie das Ergebnis nach eineroder mehreren Spalten, im Fall der Funktion DB_AGs() nach der ID, und zwar in aufstei-gender Reihenfolge. Die aufsteigende Reihenfolge wird mit ASC (engl.: ascending) fest-gelegt. Eine absteigende Reihenfolge könnten Sie mit DESC (engl.: descending) angeben.Die Funktion DB_MW($AG) zeigt, dass Sie mehrere SQL-Befehle schachteln können. Mitdem inneren SELECT-Befehl holen Sie sich die ID zu einem gegebenen Namen einerAktiengesellschaft. Diese ID wird als Einschränkung in der WHERE-Klauses beimZugriff auf eine andere Datenbanktabelle verwendet, da Sie ja nur den Mittelwert einerAktiengesellschaft mit dieser angegebenen ID berechnet haben wollen. GrundlegendeFunktionen wie eine Addition oder eine Mittelwertberechnung kann der Datenbankser-ver selbst durchführen. MySQL bietet hier die Funktion avg(value) an, die den Mittelwertdirekt als Ergebnis ausgibt.In allen Fällen befindet sich das Ergebnis der SQL-Abfrage in einer lokalen Variablennamens $data. Das Ergebnis einer SQL-Abfrage wird als Resultset bezeichnet. Nun müs-sen Sie dieses Ergebnis auswerten. Dazu bietet PHP einige Befehle an.Mit mysql_fetch_array wird eine Zeile nach der anderen als Datenfeld zurückgegeben. Mitder Angabe von MYSQL_ASSOC wird ein assoziatives Feld erzeugt. Aus der Daten-banktabelle ag mit ID=5 und name=BMW ergeben sich die Feldelemente $datensatz[ID]=5und $datensatz[name]=”BMW”. Dieses Datenfeld kann dann von der Fachlogik weiterverarbeitet werden.Auch mit dem Befehl mysql_fetch_row holen Sie eine Zeile aus der Ergebnistabelle. Beider Mittelwertberechnung ist lediglich ein einziger Wert in der Ergebnistabelle. Die Zeilewird über mysql_fetch_row ermittelt und liefert ein numerisches Datenfeld mit einem ein-PHP – Endlich objektorientiert 91 2 – ...
Tìm kiếm theo từ khóa liên quan:
lập trình hướng đối tượng ngôn ngữ lập trình html nhập môn lập trình lập trình php lập trình webGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 306 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 261 0 0 -
101 trang 198 1 0
-
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 151 0 0 -
Giáo trình nhập môn lập trình - Phần 22
48 trang 135 0 0 -
14 trang 132 0 0
-
[Thảo luận] Học PHP như thế nào khi bạn chưa biết gì về lập trình?
5 trang 130 0 0 -
161 trang 129 1 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 111 0 0 -
Bài giảng Lập trình web nâng cao: Chương 8 - Trường ĐH Văn Hiến
36 trang 107 1 0