MySql und PHP Apache2: Konfigurieren für php4 ...\apache2\conf
Transcrição
MySql und PHP Apache2: Konfigurieren für php4 ...\apache2\conf
MySql und PHP Apache2: Konfigurieren für php4 ...\apache2\conf\httpd.conf aufrufen Folgende Zeilen einfügen: LoadModule php4_module "c:/php/php4apache2.dll" AddType application/x-httpd-php .php Wichtig!! php- Dateien unter ...\apache2\htdocs speichern, damit sie von Apache gefunden werden Testen: http://localhost Beispiel: Statusseite.php <html> <head> <title>Statusseite</title> </head> <body> <? phpinfo(); ?> </body> </html> MySQL: Installieren unter Windows NT/2000/XP Starten Beenden Datenbanken mit mysql Ansprechen von mysql im Dialog Eine neue Datenbank erzeugen mysql> create database meinedb; Admin neu starten und nachsehen Die neue Datenbank benutzen mysql>use meinedb; Eine Tabelle anlegen Die Tabelle erhält den Namen adresse und enthält Datensätze, bestehend aus dem Namen (maximal 20 Buchstaben), der E-Mail-Adresse (max. 50 Buchstaben) und dem Passwort mit maximal 10 Buchstaben: mysql> create table adresse ( ->name char(20), ->email char(50), ->passwort char(10)); So lange kein Strichpunkt eingegeben wird, wartet der MySql-Editor auf Eingaben. Die Betätigung der [RETURN)-Taste führt zur Ausgabe von „->“. Man kann die Eingaben auch in eine Zeile schreiben. Die Pfeil-nach-oben-Taste führt zu Wiederholungen älterer Eingaben. Daten ausgeben mysql>select * from adresse; Man erhält aus Ausgabe: empty set Die Tabelle ist leer. Tabellen anzeigen mysql> show columns from adresse; Man sieht die Tabellenstruktur. (Aufzählung) Daten eingeben mysql>insert into adresse values (’Hermes’,’[email protected]’,’hermes’); Eingabe eines Datensatzes in die Tabelle adresse in der Reihenfolge name, email, passwort. Daten (erneut) ausgeben mysql>select * from adresse; Es erscheint eine Tabelle mit den Inhalten, die ja nun vorhanden sind. Neue Spalte in die Tabelle eingeben mysql>ALTER TABLE adresse ADD bemerkung TEXT; Hiermit wird die Datensatzstruktur verändert. Es wird eine neue Komponente bemerkung hinzugefügt. Sie ist vom Typ TEXT und kann ganze Sätze aufnehmen. Die vorhandenen Daten bleiben erhalten. Werte für bestimmte Spalten eingeben mysql>UPDATE adresse SET bemerkung = ’bla bla’ WHERE name =’Hermes’; Aufgabe: Tabelle Lege eine weitere Tabelle namens „buch“ an mit den Spalten „titel“, „autor“, „kurzinhalt“, „erscheinungsjahr“ und trage drei Datensätze ein (zwei vor 2000, einer nach 2000). Typ des Erscheinungsjahrs: YEAR oder INTEGER Die Datensätze sollen zur Kontrolle angezeigt werden. Bestimmte Daten auswählen und ausgeben mysql>select * from buch WHERE erscheinungsjahr < 2000; Mit der Angabe einer Bedingung lassen sich nur bestimmte Datensätze ausgeben. Im Beispiel sind dies die Bücher mit dem Erscheinungsjahr vor 2000. Spaltentypen mit CHANGE ändern CHANGE alterSpaltenname NeuerSpaltenname NeuerDatentyp Beispiel: ALTER TABLE buch CHANGE erscheinungsjahr erscheinungsjahr INTEGER; PHP 4: Installieren Zip Archiv (www.php.net) in ...\WINNT\Temp entzippen Folgende Dateien daraus in ...\php kopieren: extensions (Ordner) php.exe php4.apache.dll oder Php4.apachge2.dll php4ts.dll php.ini-dist in ...\WINNT kopieren und in php.ini umbenennen Grundlagen in PHP Einfügen von php-code in eine html Seite: <html><head><title></title></head> <body><?php ?></body> </html> bzw. kurz: <? ?> Kommentare beginnen in PHP mit /* und enden mit */. Einzelne Befehle werden durch Semikolon (;) voneinander getrennt. Variablen werden durch ein vorangestelltes Dollarzeichen kenntlich gemacht und brauchen nicht definiert werden. Beispiel: $a = 3; echo $a; Mit der Funktion isset [Syntax: Int isset (mixed var);] kann überprüft werden, ob der Variablen ein Wert zugewiesen wurde. Ist dies der Fall, gibt die echo- Anweisung die Zahl 1 aus. Mit unset [Syntax: Int unset (mixed var);] kann die Variable zurückgesetzt werden. Beispiel: $a = 3; echo isset ($a); unset ($a); echo isset ($a); Zeichen Bedeutung \n Neue Zeile \r Wagenrücklauf \t \\ \$ \“ Tabulator Rückstrich Dollarzeichen Anführungszeichen Innerhalb von doppelten Anführungszeichen haben nebenstehende Zeichen eine Sonderbedeutung. Logische Ausdücke < <= > >= != == && bzw. AND || bzw. OR () kleiner kleiner oder gleich größer größer oder gleich ungleich Gleich Logisches Und Logisches Oder Klammern Bei Prüfung auf Gleichheit müssen zwei Gleichheitszeichen hintereinander geschrieben werden. Beispiel: $x >1 && $x <= 10 $x liegt zwischen 1 und 11 Kapitel 1: Verbindung von MySql mit PHP Mit Hilfe des Moduls phpMyAdmin download unter:http://www.phpmyadmin.net in ...\apache2\htdocs extrahieren ggf. Namen des entstandenen Verzeichnisses (phpMyAdmin-2.5.3-rc1) anpassen In der config.inc.php folgende Angaben ändern: host (z.B. “localhost”) user (z.B. “root”) password (z.B. ohne) Standardmäßig wird die angelegte Datenbank unter: ...\mysql\data gespeichert Ohne Modul Legen Sie im Serververzeichnis von Apache unter HTDOCS einen Ordner mit dem Namen „Kapitel1“ an. Dieser Ordner nimmt die folgenden Programme auf. Wenn der Server läuft, findet der Browser den Ordner unter http://localhost/Kapitel1. Die Programme nummerieren wir durch: p1.php, p2.php, p3.php usw. Beispiel einer Verzeichnisstruktur: C: ApacheGroup Apache htdocs Kapitel1 Kapitel2 Kapitel3 Beispiel eines Aufrufs im Navigtorfenster: http://localhost/Kapitel1/p1.php Verbindungstest ___________________________ <?php $verbindung=mysql_connect(“localhost“,“root“,““); mysql_close($verbindung); ?> ___________________________ (Kapitel1/p1.php) Test der Verbindung zu MySql PHP-Programme beginnen mit <?php und endet mit ?>. mysql connect verbindet mit MySql (localhost bedeutet lokal) mysql close schließt die Verbindung Variablennamen beginnen mit dem Dollarzeichen Die Ausgabe eines leeren Fensters zeigt, dass die Verbindung klappt. Erzeugen einer Datenbank ___________________________ <?php $verbindung =mysql_connect(“localhost“,“root“,““); $anfrage="CREATE DATABASE meineDB"; mysql_query($anfrage); mysql_close($verbindung); ?> ___________________________ (Kapitel1/p2.php) Erzeugung einer Datenbank namens meineDB Anfragen formuliert man in der Regel vor und legt sie als Zeichenkette ab CREATE DATABASE erzeugt eine Datenbank mysql query() sendet den Befehl bzw. die Anfrage (query) an MySql Die Ausgabe eines leeren Fensters bestätigt die korrekte Ausführung. Erzeugen einer Tabelle innerhalb einer Datenbank ___________________________ <?php $verbindung = mysql_connect(“localhost“,“root“,““); mysql_select_db("meineDB"); $anfrage="CREATE TABLE tLogin(benutzer VARCHAR(50),passwort VARCHAR(20))"; mysql_query($anfrage); mysql_close($verbindung); ?> ___________________________________________________ (Kapitel1/p1.php) Erzeugung einer Tabelle Ein PHP-Programm beginnt mit <?php und endet mit ?>. $verbindung repräsentiert die Verbindung zur Datenbank. Unter Windows können die Parameter entfallen, wenn auf den lokalen Server zugegriffen wird. $anfrage speichert eine Datenbankanfrage als Zeichenkette. mysql_query($anfrage) sendet die Anfrage ab. CREATE TABLE erzeugt eine Tabelle namens tLogin mit den Datensätzen (Spalten) benutzer und passwort. Die erste fasst 50 Zeichen, die zweite 20. Die Tabelle lässt sich mit MySQLAdmin einsehen. Eintrag eines Datensatzes ___________________________ <?php $verbindung=mysql_connect(“localhost“,“root“,““); mysql_select_db("meineDB"); // Die Tabelle heißt tLogin // Die Datensätze heißen benutzer und passwort // Eingabe des Benutzers Hannes und seines Geheimwortes $anfrage="INSERT INTO tLogin VALUES('Hannes','blau!gelb')"; mysql_query($anfrage); mysql_close($verbindung); ?> ___________________________________________________ (Kapitel1/p4.php) Eintrag des Namens Hannes und des Geheimwortes blau!gelb. INSERT INTO <Tabelle> VALUES fügt einen Datensatz am Ende der Tabelle ein. Die Inhalte müssen in der Reihenfolge angegeben werden, in der die entsprechenden Komponenten definiert worden sind // leiten Kommentare ein Befehle enden mit einem Strichpunkt Das $-Zeichen charakterisiert eine Variable. Es gehört immer vor den Namen. Eine Ausgabe erfolgt noch nicht. Man kann sich die Inhalte mit dem MySql-Editor ansehen. Abfrage der Anzahl von Einträgen ___________________________ <?php $verbindung=mysql_connect(“localhost“,“root“,““); mysql_select_db("meineDB"); // Die Tabelle heißt tLogin //Tabelle ausgeben $anfrage="SELECT * FROM tLogin"; $ganzeTabelle=mysql_query($anfrage); mysql_close($verbindung); print("Anzahl der Datensaetze: "); $anzahl = mysql_num_rows($ganzeTabelle); print $anzahl; ?> ___________________________________________________ (Kapitel1/p5.php) Erzeugung einer Tabelle $ganzeTabelle ist eine Folge aller Datensätze. num rows liefet die Länge der Folge und damit die Anzahl der Datensätze print dient der Ausgabe. Zeichenketten sind in Klammern und Anführungszeichen zu setzen, während Variablen direkt hinter das Wort print geschrieben werden können. Hier wird die Anzahl der Datensätze (=1) ausgegeben. Ausgabe der Einträge ___________________________ <?php $verbindung=mysql connect(“localhost“,“root“,““); mysql_select_db("meineDB"); //Tabelle abfragen $anfrage="SELECT * FROM tLogin"; $ganzeTabelle=mysql_query($anfrage); mysql_close($verbindung); print("Anzahl der Datensaetze: "); $anzahl = mysql_num_rows($ganzeTabelle); print $anzahl; // Ausgabe der Einträge nach Datensätzen // Der Datensatz ds hat zwei Zeilen mit den Nummern 0 und 1 while($ds=mysql_fetch_row($ganzeTabelle)){ print("<br> Name = ".$ds[0]."<br>"); print("<br> PW = ".$ds[1]."<hr>"); } ?> ___________________________________________________ (Kapitel1/p6.php) Ausgabe aller Datensätze mysql fetch row liefert einen Datensatz mit zwei Einträgen $ds[0] ist der erste Eintrag; $ds[1] der zweite <br> heißt „Nächste Zeile“; <hr> heißt „horizontale Linie“ while (Bedingung) {Anweiungen;} ist die Struktur einer Schleife. Beginnend vom ersten Datensatz arbeitet sich die Schleife durch die Folge durch. Mit fetch row liest sie jeweils den nächsten Datensatz in die Variable $ds ein. Aus dieser extrahiert sie mit $ds[0] und $ds[1] die beiden Einträge. Der Punkt setzt die Zeichenketten zusammen. Übung Man gebe weitere Datensätze ein und überprüfe die Eingaben.