PHP Überblick PHP PHP ist eine Skriptsprache, die direkt in HTML-Seiten eingebettet wird Wird die PHP-Datei von einem Betrachter angefordert, so werden die PHP-Befehle von einem PHP Interpeter, der in den Webserver integriert werden kann, Schritt für Schritt ausgeführt und die Ergebnisse an den Betrachter weitergeleitet Je nach Installation interpretiert diese PHP-Zusatzsoftware nur Dateien mit der Endung ".php", oder aber auch Dateien mit den Endungen ".html", ".htm". PHP wird seit etwa 1994 entwickelt und nimmt an Popularität zu Ein besonderer Schwerpunkt liegt auf der Einbindung verschiedener Datenbanken PHP ist an C, Java und Perl angelehnt. Eine ausführliche Beschreibung liegt bei www.php.net. PHP Befehle in HTML einbauen Dazu gibt es 4 Möglichkeiten: <? ... ?> <?php ... ?> <script language="php"> ... </script> <% ... %> Anmerkung: "..." steht für beliebige PHP-Befehle. A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 1 PHP Überblick Der erst PHP-Befehl Der echo-Befehl gibt Texte (sogenannte Strings) aus: <? echo "Hallo"; ?> Alle PHP-Befehle werden mit ";" abgeschlossen. Es gibt eine Reihe von Sonderzeichen. Wichtigstes Sonderzeichen: "\n": Neue Zeile. echo "Hallo\n"; echo "Hallo\n"; Man beachte dabei den Unterschied zu echo "Hallo<BR>"; echo "Hallo<BR>"; Im ersten Fall wird lediglich im vom Webserver ausgelieferten HTML-Text ein Zeilenumbruch durchgeführt. Im zweiten Fall enthält der HTML-Text den HTML-Befehl zum Zeilenumbruch. A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 2 PHP Überblick Variablen Um sinnvolle Anwendungen erstellen zu können, benötigen wir Variablen. Variablen-Namen werden in PHP nach den gleichen Regeln wie die anderen Bezeichner erstellt. Ein gültiger Variablen-Name beginnt mit einem Buchstaben oder einem Unterstrich ("_"), gefolgt von einer beliebigen Anzahl von Buchstaben, Zahlen oder Unterstrichen. Anmerkung: Alle Variablennamen beginnen mit $. Bei Variablen-Namen wird zwischen Groß- und Kleinschreibung unterschieden (case-sensitive). Beispiel-Code $var $vaR $Var $vAr = = = = "Du"; "und"; "ich"; "wir lernen PHP" echo "$var $vaR $Var, $vAr"; // gibt "Du und ich, // wir lernen PHP" aus $4site = "nicht jetzt"; // ungültig, da Anfang eine Zahl $_4site = "nicht jetzt"; // gültig, da Unterstrich am Anfang $täbyte = " irgendwas"; // gültig, da 'ä' dem ASCII-Wert 228 entspricht Der Typ der Variablen (ganze Zahl, Gleitpunktzahl, String) wird je nach Verwendung von PHP automatisch bestimmt. Der Benutzer braucht sich darum nur in Spezialfällen zu kümmern. A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 3 PHP Überblick Variablen PHP4 bietet eine andere Möglichkeit der Wertzuweisung bei Variablen: Zuweisung durch Referenzierung. Das bedeutet, dass der Wert der neuen Variablen eine Referenz zur Ursprungs-Variablen darstellt (mit anderen Worten: Der Wert ist ein Alias bzw. Zeiger auf den Inhalt der Ursprungsvariablen). Beide Variablen zeigen also auf die selbe(n) Speicherstelle(n). Für die Zuweisung per Referenz müssen Sie lediglich ein "&" der (Ausgangs-, Quell-) Variablen voranstellen, die Sie einer anderen Variablen zuweisen wollen. Der folgende Skript- Ausschnitt wird zweimal 'Mein Name ist Bob' ausgeben: <?php $foo = "Bob"; // "Bob" der Variablen $foo zuweisen. $bar = &$foo; // Zeiger auf $foo in $bar erzeugen. $bar = "My name is $bar"; // $bar verändern... echo $foo; // $foo wurde dadurch ebenfalls verändert. echo $bar; ?> A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 4 PHP Überblick Vordefinierte Variablen PHP bietet jedem ausgeführten Skript eine Vielzahl von vordefinierten Variablen an. Die jeweilig zur Verfügung stehenden Variablen sind abhängig von der Web-Server, der Version, der Konfiguration und weiteren Faktoren Wir unterscheiden Web-Server-Variablen wie z.B. SERVER_NAME, SCRIPT_FILENAME, SERVER_ADMIN Umgebungs- und Environment-Variablen wie z.B. MAIL, USER, UID und PHP-Variablen wie z.B. HTTP_ENV_VARS. Eine Liste aller vordefinierten Variablen erhält man durch Gebrauch der phpinfo()-Funktion. A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 5 PHP Überblick Geltungsbereich von Variablen (1) Der Geltungsbereich einer Variablen ergibt sich aus dem Zusammenhang, in dem sie definiert wurde. Meistens besteht dieser aus einem einzigen Bereich. Dieser beinhaltet auch den Bereich für Dateien, die per „include"- oder „require"-Anweisung eingebunden wurden, z.B.: $a = 1; include("b.inc"); $a = 1; /* globaler Bereich */ function test() { echo $a; /* Referenz auf einen lokalen Variablen-Bereich */ } test(); // keine Bildschirmausgabe ! ! "# $ % $a = 1; $b = 2; function sum() { global $a, $b; $b = $a + $b; } sum(); echo $b; A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 6 PHP Überblick Geltungsbereich von Variablen (2) Ein weiterer wichtiger Anwendungszweck von Variablen-Bereichen ist die statische Variable. Eine statische Variable existiert nur in einem lokalen Funktions-Bereich, der Wert geht beim Verlassen dieses Bereichs aber nicht verloren. function test () { static $a = 0; echo $a; $a++; } // Bei jedem Aufruf der test()-Funktion der aktuelle Wert von $a ausgegeben und dann um 1 erhöht. Variable Variablen Eine variable Variable nimmt den Wert einer Variablen und behandelt ihn als Bezeichner der Variablen. $a = "hallo"; $$a = "Welt"; /* es existieren zwei definierte und gespeicherte Variablen: $a mit dem Inhalt "Hallo" und $hallo mit dem Inhalt „Welt“ */ echo "$a ${$a}"; // Aussage: „hallo Welt“ echo "$a $hallo"; // Aussage: „hallo Welt“ A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 7 PHP Überblick Variablen außerhalb von PHP Sobald ein Formular an ein PHP-Skript übergeben wird, wird jede Variable dieses Formulars dem Skript automatisch verfügbar gemacht. Beispiel <form action="foo.php3" method="post"> Name: <input type="text" name="name"><br> <input type="submit"> </form> Im Zusammenhang mit Formular-Variablen versteht PHP auch Arrays <form action="array.php" method="post"> Name: <input type="text" name="personal[name]"><br> <!– fuer Indizes koennen in PHP beliebige Datentypen verwendet werden --> Email: <input type="text" name="personal[email]"><br> Bier: <br> <select multiple name="bier[]"> <option value="binding">Binding <option value="warsteiner">Warsteiner <option value="stauder">Stauder <option value="stuttgarter">Stuttgarter Schwabenbräu </select> <input type="submit"> </form> A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 8 PHP Überblick Konstanten PHP definiert eine Reihe von Konstanten und stellt einen Mechanismus zur Verfügung, mit dem man zusätzliche Konstanten zur Laufzeit definieren kann Konstanten werden mit der define()-Funktion definiert Beispiel <?php define("CONSTANT", "Hallo Welt."); echo CONSTANT; // gibt "Hallo Welt." aus. ?> Operationen (1) Arithmetische Operationen &'&$i+$j, &(&)$i-$j &*&+$i*$j &,&-#$i/$j &.&/( $i%$j 01.23 4 01 23 2/4 Zuweisungsoperationen - 5$ &6& 5 & 7&" )( 7 8 9 % 8$ A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 9 PHP Überblick Operationen (2) Beispiel $a = 3; $a += 5; // setzt $a auf den Wert 8, als ob wir geschrieben haetten: $a = $a + 5; $b = "Hallo "; $b .= "Du!"; // setzt $b auf den Wert "Hallo Du!„ Bit-Operatoren Bit-Operatoren erlauben es, in einem Integer bestimmte Bits "ein- oder auszuschalten" Beispiel Name Ergebnis $a & $b Und Die Bits sind in $a und in $b gesetzt. $a | $b Oder Die Bits sind entweder in $a oder in $b gesetzt. $a ^ $b XOR Die Bits sind in $a oder in $b gesetzt, aber nicht in beiden. ~$a Nicht Bits, die in $a gesetzt sind, werden nicht gesetzt, und umgekehrt. $a << $b Nach links verschieben Verschiebung der Bits von $a um $b Stellen nach links $a >> $b Nach rechts verschieben Verschiebung der Bits von $a um $b Stellen nach rechts A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 10 PHP Überblick Operationen (3) Vergleichsoperatoren Beispiel Name Ergebnis $a == $b Gleich Gibt "wahr" zurück, wenn $a gleich $b ist. $a === $b Identisch Gibt "wahr" zurück, wenn $a gleich $b ist und beide vom gleichen Typ sind. $a != $b Ungleich Gibt "wahr" zurück, wenn $a nicht gleich $b ist. $a < $b Kleiner Als Gibt "wahr" zurück, wenn $a kleiner als $b ist. $a > $b Größer Als Gibt "wahr" zurück, wenn $a größer als $b ist. $a <= $b Kleiner Gleich Gibt "wahr" zurück", wenn $a kleiner oder gleich $b ist. $a >= $b Größer Gleich Gibt "wahr" zurück, wenn $a größer oder gleich $b ist. Operatoren zur Programmausführung PHP unterstützt einen Operator zur Ausführung externer Programme: Die sog. Backticks (``). PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe des aufgegebenen Programms $output = `ls -al`; echo "<pre>$output</pre>"; A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 11 PHP Überblick Operationen (4) Inkrementierungs- bzw. Dekrementierungsoperatoren PHP unterstützt Prä- und Post-Inkrementierungs- und Dekrementierungsoperatoren Beispiel Name Auswirkung ++$a Prä-Inkrement Erhöht den Wert von $a um eins (inkrementiert $a), und gibt anschließend den neuen Wert von $a zurück. $a++ Post-Inkrement Gibt zuerst den aktuellen Wert von $a zurück und erhöht dann den Wert von $a um eins. --$a Prä-Dekrement Vermindert den Wert von $a um eins (dekrementiert $a), und gibt anschließend den neuen Wert von $a zurück. $a-- Post-Dekrement Gibt zuerst den aktuellen Wert von $a zurück und erhöht dann den Wert von $a um eins. Logische Operatoren Beispiel Name Ergebnis $a and $b Und Wahr sowohl $a als auch $b wahr ist. $a or $b Oder Wahr wenn $a oder $b wahr ist. $a xor $b Entweder Oder Wahr wenn entweder $a oder $b wahr ist, aber nicht beide. A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 12 PHP Überblick Operationen (5) !$a Nicht Wahr, wenn $a nicht wahr ist. $a && $b Und Wahr, wenn sowohl $a als auch $b wahr ist. $a || $b Oder Wahr, wenn $a oder $b wahr ist. Zeichenketten-Operatoren Es gibt in PHP zwei Operatoren für Zeichenketten Der erste ist Vereinigungs-Operator. ('.'), dessen Rückgabewert eine Zeichenkette, zusammengesetzt aus dem rechten und dem linken Argument, ist. Der zweite ist der Vereinigungs-Zuweisungsoperator ('.='). Siehe Zuweisungs-Operatoren für weitere Informationen. Beispiel $a = "Hallo"; $b = $a . "Welt!"; // $b enthaelt jetzt den Text "Hallo Welt!" $a = "Hallo"; $a .= "Welt!"; // $a enthält jetzt den Text "Hallo Welt!" A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 13 PHP Überblick Operationen (6) Kontroll-Strukturen if ‘if’ erlaubt die bedingte Ausführung von Programmteilen. PHP beinhaltet eine if-Struktur, die ähnlich der C-Programmiersprache ist: if (expr) { statement; } :;$ ($ " #$ ($ <)% $- =$ : >9 ;$ ?>9 ? @=!A>9 if ($a > $b) { print "a ist grösser als b"; } else { print "a ist NICHT grösser als b"; } :;$ @ # A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 14 PHP Überblick Operationen (7) Kontroll-Strukturen while While-Schleifen sind die einfachste Form von Schleifen in PHP. Sie funktionieren genau wie in C. Die Grundform einer while-Anweisung lautet: while (expr) { statement; } -B$() $() 9 %" % C - " $ D E % )FG" B$() do { statement; } while (expr); ()G) ! -)FG() for (expr1; expr2; expr3) { statement; } A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 15 PHP Überblick Operationen (8) - DG2E$)"$" DCE 5 C-$G0" 8A/H%)$" 8%<)%$) %C-$G1"," 2 for ($i = 1; $i <= 10; $i++) { print $i; } 0 for ($i = 1; ; $i++) { if ($i > 10) { break; } print $i; } A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 16 PHP Überblick Operationen (9) foreach PHP enthält eine foreach-Funktion, genau wie Perl und andere Sprachen Es gibt zwei Syntax-Formen: foreach(array_expression as $value) { statement; } foreach(array_expression as $key => $value) { statement; } -FIG(F C-$ 8%?# $F(52> -$-%$ -$9C- )"?F $$ 2 foreach ($arr as $value) { echo "Wert: $value<br>\n"; } 0 foreach ($arr as $key => $value) { echo "Schlüssel: $key; Wert: $value<br>\n"; } A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 17 PHP Überblick Operationen (10) break ‚break‘ bricht die Ausführung der aktuellen for-, while- oder switch-Anweisungs-Sequenz ab. Einem ‚break‘ kann optional ein numerisches Argument angehängt werden, das die Anzahl der abzubrechenden Befehls-Sequenzen enthält. Beispiel: $i = 0; while (++$i) { switch ($i) { case 5: echo "Bei 5<br>\n"; break 1; /* Beendet nur switch. */ case 10: echo "Bei 10; quitting<br>\n"; break 2; /* Beendet switch und while. */ default: break; } } A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 18 PHP Überblick Operationen (11) continue ‚continue‘ wird innerhalb von Schleifen gebraucht. Die Schleife wird an der aktuellen Stelle abgebrochen und es wird der nächste Durchlauf begonnen. ‚continue‘ kann optional ein numerisches Argument erhalten, das die Anzahl der zu überspringenden Schleifendurchläufe beinhaltet. $i = 0; while ($i++ < 5) { echo "Aussen<br>\n"; while (1) { echo " Mitte<br>\n"; while (1) { echo " Innen<br>\n"; continue 3; } echo "Das wird nie ausgegeben.<br>\n";} echo "Dies auch nicht.<br>\n"; } switch Die switch-Anweisung ist gleichbedeutend mit einer Reihe von if-Anweisungen mit dem gleichen Parameter. Häufig wollen Sie ein und die selbe Variable (bzw. den selben Ausdruck) mit verschiedensten Werten vergleichen und in Abhängigkeit vom Auswertungsergebnis verschiedene Programmteile ausführen. Genau das ermöglicht die switch-Anweisung. A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 19 PHP Überblick Operationen (12) Beispiel switch ($i) { case 0: print "i ist gleich case 1: print "i ist gleich case 2: print "i ist gleich default: print "i ist weder } 0"; break; 1"; break; 2"; break; 0, 1 noch 2"; include()-Befehl Syntax für den Aufruf des include()-Befehls include("dateiname"); Funktion: fügt an dieser Stelle den Inhalt der Datei `dateiname` ein Ermöglicht die zentrale Pflege von Quellcode Besonderheiten: Die Datei, die eingefügt wird, wird als HTML-Code interpretiert und muss daher, um als PHP-Code interpretiert zu werden, in <?php ... ?> eingebettet werden Wenn include() in Verbindung mit Bedingungen oder Schleifen eingesetzt wird, muss es immer in geschweiften Klammern geschrieben werden A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 20 PHP Überblick Operationen (13) Beispiel /* So ist es falsch */ if ($Bedingung) include("Datei.inc"); /* So ist es richtig */ if ($Bedingung) { include("Datei.inc"); } require()-Befehl Syntax für den Aufruf des require()-Befehls require("dateiname"); Funktionsweise: require() funktioniert analog zu include() Unterschiede zu include(): require() wird immer ausgeführt, also auch dann, wenn es eigentlich abhängig von einer if-Bedingung nicht ausgeführt werden dürfte innerhalb einer Schleife (FOR, WHILE) wird require() nur einmal interpretiert bei Anwendung der require()-Anweisung auf eine nicht vorhandene Datei reagiert PHP mit einem ,,Fatal error:``; bei include() gibt PHP ein ,,Warning`` aus A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 21 PHP Überblick Funktionen (1) Funktionen dienen in PHP zum Zusammenfassen mehrerer Befehle zu einem Aufruf Die Syntax lautet wie folgt: function foo($arg_1, $arg_2, ..., $arg_n) { echo "Example function.\n"; return $retval; } Erläuterung: Die Funktion foo() bekommt die Argumente “Arg_1” bis “Arg_n” übergeben und gibt den Wert der Variablen `retval` zurück Wird kein `return` in der Funktion benutzt, hat man dasselbe Verhalten wie bei einer Prozedur, d.h., PHP unterscheidet nicht zwischen Funktionen und Prozeduren Beispiel function my_sqr($num) { // liefert das Quadrat von $num zurück return $num * $num; } echo my_sqr(4); // gibt 16 aus my_sqr(4); // ruft die Funktion auf, es passiert aber nichts A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 22 PHP Überblick Funktionen (2) Funktionsparameter (call by reference / call by value) Normalerweise werden in PHP Werteparameter übergeben (call by value) Will man jedoch die Änderungen der Parameter in der Funktion auch in der aufrufenden Funktion haben, muss man mit Variablenparametern bzw. Referenzparametern arbeiten (call by reference) Variablenparameter werden mit einem `&` im Funktionskopf gekennzeichnet Beispiel function foo1 ($st) { $st .= 'und etwas mehr.';} function foo2 (&$st) { $st .= 'und etwas mehr.'; } $str = 'Dies ist ein String, '; echo $str; // Ausgabe: 'Dies ist ein String, '; foo1 echo foo2 echo ($str); $str; // Ausgabe: 'Dies ist ein String, '; ($str); $str; // Ausgabe: 'Dies ist ein String, und etwas mehr.'; A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 23 PHP PHP & Oracle Oracle Funktionen (1) PHP unterstützt Oracle Datenbanken mittels der folgenden Funktionen (Ausschnitt): Name Funktion OCILogon(string user, string pass[, string db]) Öffnet eine Verbindung zur Oracle Datenbank; Voraussetzung: Umgebungsvariablen wie ORALCE_SID, ORACLE_HOME und TNS_ADMIN müssen gesetzt sein und eine gültige User- und Passwort-Kombination wird benötigt OCIParse(int conn, string query) Parst ein SQL-Statement OCIExecute(int stmt) Führt ein SQL-Statement aus OCINumCols(int stmt) Gibt die Anzahl der Spalten des Anfragergebisses zurück OCIFetch(int stmt) Holt sich das nächste Ergebnistupel und speichert es im Ergebnispuffer OCIResult(int stmt, mixed column) Liefert den Wert der angegebenen Spalte des aktuellen Ergebnistupels OCIFreeStatement(int stmt) Gibt alle von einem SQL-Statement allokierten Ressourcen frei OCILogoff(int conn) Schließt eine Datenbankverbindung Das komplette von PHP unterstützte Funktionsspektrum für Oracle Datenbanken befindet sich im PHP Manual unter www.php.net/manual A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 24 PHP PHP & Oracle Oracle Funktionen (2) Beispiel: Relation Kaffeevorrat Kaffeename Roestungstyp Menge French Roast dark 10 Kenya medium 6 Ethiopian Harrar medium 35 Sumatra dark 8 Columbian light 12 Datenbankzugriff Schritt 1: Setzen der DB Variablen PutEnv("ORACLE_HOME=/net/lin_local/orahome/9.0.1"); PutEnv("TNS_ADMIN=/net/lin_local/oracle/orahome/network/admin"); Schritt 2: Erzeugung einer Verbindungsvariable $connection = OCILogon("scott", "tiger", "db11i"); A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 25 PHP PHP & Oracle Oracle Funktionen (3) Schritt 3: Überprüfen der Verbindung if (!$connection) { echo "Couldn't make a connection!"; exit; } Schritt 4: Erzeugen eines SQL-Statements $sql = "SELECT Kaffeename, Roestungstyp, Menge FROM Kaffeevorrat ORDER BY Menge DESC"; Schritt 5: Parsen des SQL-Statements im Kontext der DB-Verbindung $sql_statement = OCIParse($connection,$sql); Schritt 6: Ausführen des geparsten SQL-Statements auf der DB OCIExecute($sql_statement); Schritt 7: Ergebnisverarbeitung A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 26 PHP PHP & Oracle Oracle Funktionen (4) // Ermittlung der Spaltenanzahl der Ergebnisrelation $num_columns = OCINumCols($sql_statement); // Beginn der Formatierung der Ergebnisausgabe echo "<TABLE BORDER=1>"; echo "<TR><TH>Kaffeename</TH><TH>Roestungstyp</TH><TH>Menge</TH>"; // Ausgabe der Resultate per Tupel while (OCIFetch($sql_statement)) { echo "<TR>"; for ($i = 1; $i < $num_columns; $i++) { $column_value = OCIResult($sql_statement,$i); echo "<TD>$column_value</TD>"; } echo "</TR>"; } echo "</TABLE>"; Schritt 8: Freigabe von Ressourcen und Abbau der DB-Verbindung OCIFreeStatement($sql_statement); OCILogoff($connection); A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 27 PHP PHP & Oracle Oracle Funktionen (5) Das komplette PHP-Skript <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>Aussage der Relation Kaffeevorrat</title> </head> <body> <?php // set db environment variables PutEnv("ORACLE_HOME=/net/lin_local/orahome/9.0.1"); PutEnv("TNS_ADMIN=/net/lin_local/oracle/orahome/network/admin"); // create connection $connection = OCILogon(“scott",“tiger”, “db11i”); // test connection if (!$connection) { echo "Couldn't make a connection!"; exit; } // create SQL statement $sql = "SELECT Kaffeename, Roestungstyp, Menge FROM Kaffeevorrat ORDER BY Menge DESC"; // parse SQL statement $sql_statement = OCIParse($connection,$sql); // execute SQL query OCIExecute($sql_statement); // get number of columns for use later $num_columns = OCINumCols($sql_statement); A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 28 PHP PHP & Oracle Oracle Funktionen (6) echo "<TABLE BORDER=1>"; echo "<TR><TH>Kaffeename</TH><TH>R&ouml;stungstyp</TH><TH>Menge</TH>"; // Ausgabe der Resultate per Tupel while (OCIFetch($sql_statement)) { echo "<TR>"; for ($i = 1; $i < $num_columns; $i++) { $column_value = OCIResult($sql_statement,$i); echo "<TD>$column_value</TD>"; } echo "</TR>"; } echo "</TABLE>"; OCIFreeStatement($sql_statement); OCILogoff($connection); ?> </body> </html> A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW 14. Januar 2002 Seite 29