PHP Überblick

Werbung
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ö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
Herunterladen