Professionelle Softwareentwicklung mit PHP 5

Größe: px
Ab Seite anzeigen:

Download "Professionelle Softwareentwicklung mit PHP 5"

Transkript

1 Professionelle Softwareentwicklung mit PHP 5 Professionelle Softwareentwicklung mit PHP 5 Weiter Professionelle Softwareentwicklung mit PHP 5 Objektorientierung. Entwurfsmuster. Modellierung. Fortgeschrittene Datenbankprogrammierung. Sebastian Bergmann Text und Abbildungen dieser HTML-Dateien sind der Inhalt des Buchs "Professionelle Softwareentwicklung mit PHP 5" (dpunkt. verlag, ISBN ) und urheberrechtlich geschützt. 1. Auflage Aktualisiert am Widmung Dieses Buch ist meinen Eltern, Engelbert und Beatrice Bergmann, in Liebe gewidmet. Inhaltsverzeichnis Geleitwort I. Objektorientierte Programmierung. 1. Grundlagen Motivation Klassen und Objekte Polymorphie Referenzen Klassenmethoden, Klassenvariablen und Klassenkonstanten Konstruktoren und Destruktoren Vererbung Abstrakte Klassen und Schnittstellen Fehlerbehandlung mit Ausnahmen Serialisierung von Objekten (1 von 3) :36:58

2 Professionelle Softwareentwicklung mit PHP 5 Die Reflection API Migration von PHP 4 zu PHP 5 2. Interzeptormethoden autoload get set call tostring 3. Iteratoren Die Iterator-Schnittstellen von PHP 5 Die Standard PHP Library (SPL) Die Schnittstelle ArrayAccess 4. Testgetriebene Entwicklung mit PHPUnit Testfälle und Zusicherungen Testfälle ausführen und zusammenfassen Automatische Generierung von Testfallklassen Code-Coverage-Analyse von PHP-Applikationen TestDox II. Entwurfsmuster in PHP anwenden. 5. Erzeugungsmuster Abstrakte Fabrik Singleton 6. Strukturmuster Dekorierer Stellvertreter 7. Verhaltensmuster Beobachter Schablonenmethode Strategie Iterator III. PHP-5-Programmierung. 8. XML-Verarbeitung mit PHP SimpleXML Simple API for XML (SAX) Document Object Model (DOM) XSL Transformations (XSLT) Objekte mit dem XML_Transformer ins Web bringen (2 von 3) :36:58

3 Professionelle Softwareentwicklung mit PHP 5 9. Webdienste mit SOAP Einen Webdienst programmieren Einen Webdienst verwenden 10. Die MySQLi-Erweiterung Die MySQLi-Erweiterung objektorientiert verwenden Vorbereitete Anfragen verwenden Die MySQLi-Erweiterung prozedural verwenden IV. Fortgeschrittene Datenbankprogrammierung. 11. Creole Verbindung zur Datenbank Ausführen von SQL-Anfragen Metadaten 12. Propel Spezifizieren des Datenmodells in XML Objektmodell und Objektspeicher Nach Objekten im Objektspeicher suchen V. Werkzeuge für die Entwicklung von PHP-Projekten. 13. Code-Dokumentation phpdocumentor Doxygen 14. Modellierung mit UML und MDA ArgoUML und Poseidon for UML UML2PHP Anhänge. A. Installation von Apache 2.0, MySQL 4.1 und PHP 5.0 B. Literaturverzeichnis C. Glossar D. Stichwortverzeichnis E. Lizenz Copyright 2005 Sebastian Bergmann und dpunkt.verlag GmbH. Weiter Geleitwort (3 von 3) :36:58

4 Kapitel 9. Webdienste mit SOAP Kapitel 9. Webdienste mit SOAP Zurück Teil III. PHP-5-Programmierung. Weiter Kapitel 9. Webdienste mit SOAP "Wenn eine Idee nicht zuerst absurd erscheint, taugt sie nichts." --Albert Einstein Ein Webdienst ist eine Softwarekomponente, die unter Verwendung von bestehenden Technologien wie HTTP (für den Transport der Daten) und XML (für die Formatierung der Daten) "über das Web" genutzt werden kann. In diesem Kapitel wollen wir die Programmierung von und mit Webdiensten in PHP auf Grundlage der XML-Standards Simple Object Access Protocol (SOAP) und Web Service Description Language (WSDL) betrachten. SOAP dient der Formatierung der Daten, WSDL der Beschreibung der durch den Webdienst angebotenen Funktion (en). Dank der verbesserten Unterstützung für XML-Technologien (siehe Kapitel 8) bietet PHP 5 eine ebenso effiziente wie komfortable Schnittstelle für die Arbeit mit Webdiensten an. Diese ist jedoch in der Standardkonfiguration nicht aktiviert und muss über --enable-soap bei der Konfiguration des Build-Prozesses aktiviert werden (siehe Anhang A). Zurück Nach oben Weiter Objekte mit dem XML_Transformer ins Web bringen Zum Anfang Einen Webdienst programmieren Copyright 2005 Sebastian Bergmann und dpunkt.verlag GmbH. 21:38:48

5 Einen Webdienst programmieren Einen Webdienst programmieren Zurück Kapitel 9. Webdienste mit SOAP Weiter Einen Webdienst programmieren Jede Funktion oder öffentliche Methode einer Klasse kann in PHP 5 über die Klasse SOAPServer als Webdienst verfügbar gemacht werden. Der Konstruktor der Klasse SOAPServer erwartet entweder den Pfad zu einer WSDL-Beschreibung des Webdienstes als ersten Parameter oder ein assoziatives Array, das Informationen wie die URL des Webdienstes enthält, als zweiten Parameter. Wir betrachten zunächst den Fall, dass keine WSDL- Beschreibung vorliegt. In Beispiel 9.1 übergeben wir den Wert NULL als ersten Parameter sowie ein Array mit der Konfiguration des Webdienstes als zweiten Parameter. Mit der Methode setclass() des SOAPServer-Objektes legen wir die Klasse fest, deren öffentliche Methoden wir über den Webdienst verfügbar machen möchten. Mit der Methode handle() "starten" wir den Webdienst. Das bedeutet, dass eine HTTP-Anfrage an das Skript des SOAPServer-Objektes als Anfrage an den Webdienst aufgefasst und entsprechend verarbeitet wird. Beispiel 9.1: Der Hallo-Welt-Webdienst class Webdienst { public function hallowelt() { return 'Hallo Welt'; try { $server = new SOAPServer( (1 von 5) :38:57

6 Einen Webdienst programmieren NULL, array( 'uri' => ' ) $server->setclass('webdienst' $server->handle( catch (SOAPFault $f) { print $f->faultstring;?> Fehler, die während der SOAP-Verarbeitung auftreten, werden durch eine SOAPFault-Ausnahme repräsentiert und können entsprechend behandelt werden. Nehmen wir einmal an, dass Beispiel 9.1 unter der URL erreichbar ist. Eine "normale" HTTP-Anfrage für dieses Dokument führt zu einer SOAP-Fehlermeldung, wie sie Abbildung 9.1 zeigt, da sie keine gültige Anfrage im SOAP-Format enthält. Abbildung 9.1. Ausgabe: SOAP-Antwort auf eine HTTP-Anfrage <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:soap-env=" <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>soap-env:server</faultcode> <faultstring>bad Request. Can't find HTTP_RAW_POST_DATA</faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Über eine HTTP-Post-Anfrage (Beispiel 9.2), die im SOAP-XML-Format gestellt wird, können wir die (2 von 5) :38:57

7 Einen Webdienst programmieren Methode hallowelt() der Klasse Webdienst (Beispiel 9.1) aufrufen. Beispiel 9.2: Eine SOAP-Anfrage an den Hallo-Welt-Webdienst <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope soap-env:encodingstyle=" xmlns:soap-env=" xmlns:xsd=" xmlns:xsi=" xmlns:si=" <SOAP-ENV:Body> <ns1:hallowelt xmlns:ns1=" /> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Hallo Welt Eine solche Anfrage von Hand zu erstellen ist bereits in dem hier gezeigten einfachen Beispiel (keine Parameter, einfacher String als Ergebnis) mühsam. Im folgenden Abschnitt werden wir sehen, wie uns die Klasse SOAPClient diese Arbeit abnimmt. Doch zunächst beschreiben wir den Webdienst mit WSDL in der Datei HalloWelt.wsdl (Beispiel 9.3). Die WSDL-Beschreibung enthält unter anderem Informationen über die Adresse des Webdienstes sowie die Datentypen von Parametern und Rückgabewerten der angebotenen Methoden. Beispiel 9.3: Den Hallo-Welt-Webdienst mit einem WSDL-Dokument beschreiben <?xml version ="1.0" encoding ="UTF-8"?> (3 von 5) :38:57

8 Einen Webdienst programmieren <definitions name="hallowelt" targetnamespace=" xmlns:tns=" xmlns:soap=" xmlns:xsd=" xmlns:soapenc=" xmlns:wsdl=" xmlns=" <message name="halloweltresponse"> <part name="result" type="xsd:string"/> </message> <porttype name="halloweltporttype"> <operation name="hallowelt"> <output message="tns:halloweltresponse"/> </operation> </porttype> <binding name="halloweltbinding" type="tns:halloweltporttype"> <soap:binding style="rpc" transport=" <operation name="hallowelt"> <soap:operation soapaction="urn:hallowelt#hallowelt"/> <output> <soap:body use="encoded" namespace="urn:hallowelt" encodingstyle=" </output> </operation> </binding> <service name="halloweltservice"> <port name="halloweltport" binding="halloweltbinding"> <soap:address location=" </port> (4 von 5) :38:57

9 Einen Webdienst programmieren </service> </definitions> Bei der Erzeugung des SOAPServer-Objektes können wir nun anstelle von NULL und dem assoziativen Parameter-Array den Pfad zur WSDL-Beschreibung aus Beispiel 9.3 angeben (Beispiel 9.4). Für eine HTTP-Anfrage an liefert das Skript nun die WSDL- Beschreibung aus. Beispiel 9.4: Der Hallo-Welt-Webdienst mit WSDL-Beschreibung class Webdienst { public function hallowelt() { return 'Hallo Welt'; try { $server = new SOAPServer('HalloWelt.wsdl' $server->setclass('webdienst' $server->handle( catch (SOAPFault $f) { print $f->faultstring;?> Zurück Nach oben Weiter Kapitel 9. Webdienste mit SOAP Zum Anfang Einen Webdienst verwenden Copyright 2005 Sebastian Bergmann und dpunkt.verlag GmbH. (5 von 5) :38:57

10 Einen Webdienst verwenden Einen Webdienst verwenden Zurück Kapitel 9. Webdienste mit SOAP Weiter Einen Webdienst verwenden Für die Nutzung eines Webdienstes bietet PHP die Klasse SOAPClient an. Ein Objekt dieser Klasse dient hierbei als Stellvertreter (siehe Stellvertreter ) für den Webdienst: Methodenaufrufe werden automatisch in eine SOAP-Nachricht übersetzt und an den entsprechenden Webdienst weitergeleitet. Die SOAP-Antwort wird verarbeitet und als Ergebnis des Methodenaufrufes zurückgegeben. Intern benutzt die Klasse SOAPClient hierfür eine call()-methode (siehe Kapitel 2). Liegt für den zu verwendenden Webdienst eine WSDL-Beschreibung vor, so ist dem Konstruktor der Klasse SOAPClient lediglich Pfad oder URL zu übergeben, wo das WSDL-Dokument zu finden ist. Beispiel 9.5 zeigt den Zugriff auf den Hallo-Welt-Webdienst über dessen WSDL-Beschreibung. Beispiel 9.5: Über die WSDL-Beschreibung auf den Hallo-Welt-Webdienst zugreifen try { $client = new SOAPClient(' print $client->hallowelt( catch (SOAPFault $f) { print $f->faultstring;?> Hallo Welt Die Erzeugung eines SOAPClient-Objektes für die Verwendung eines Webdienstes, für den keine WSDLhttp:// (1 von 4) :38:58

11 Einen Webdienst verwenden Beschreibung vorliegt, gestaltet sich etwas aufwändiger. Die sonst aus der WSDL-Beschreibung gewonnenen Informationen müssen dann dem Konstruktor in einem assoziativen Array übergeben werden. Beispiel 9.6: Ohne WSDL-Beschreibung auf den Hallo-Welt-Webdienst zugreifen try { $client = new SOAPClient( NULL, array( 'location' => ' 'uri' => ' 'style' => SOAP_RPC, 'use' => SOAP_ENCODED ) print $client->hallowelt( catch (SOAPFault $f) { print $f->faultstring;?> Hallo Welt Über die Methode getfunctions() der Klasse SOAPClient können Informationen über die Funktionen des Webdienstes abgefragt werden. Hierzu gehören Name der Funktion, Name und Typ der Parameter sowie der Typ des Rückgabewertes. Beispiel 9.7 zeigt die Ausgabe von getfunctions() für ein SOAPClient-Objekt, das den Google-Webdienst repräsentiert. Die Methode getfunctions() gewinnt ihre Informationen aus der WSDL-Beschreibung des Webdienstes. Beispiel 9.7: Die Methode SOAPClient:: getfunctions() (2 von 4) :38:58

12 Einen Webdienst verwenden $client = new SOAPClient('GoogleSearch.wsdl' print_r($client-> getfunctions()?> Array ( [0] => base64binary dogetcachedpage(string $key, string $url) [1] => string dospellingsuggestion(string $key, string $phrase) [2] => GoogleSearchResult dogooglesearch(string $key, string $q, int $start, int $maxresults, boolean $filter, string $restrict, boolean $safesearch, string $lr, string $ie, string $oe) ) Beispiel 9.8 demonstriert den Zugriff auf den Google-Webdienst über ein Objekt der Klasse SOAPClient. Damit das Beispiel korrekt funktioniert, muss der erste Parameter der Methode dogooglesearch() durch einen gültigen Lizenzschlüssel für den Google-Webdienst ersetzt werden. Beispiel 9.8: Auf den Webdienst von Google zugreifen $client = new SOAPClient('GoogleSearch.wsdl' try { $result = $client->dogooglesearch( ' ', 'Professionelle Softwareentwicklung mit PHP 5', 0, 1 foreach ($result->resultelements as $resultelement) { print $resultelement->url; catch (SOAPFault $f) { print $f->faultstring; (3 von 4) :38:58

13 Einen Webdienst verwenden?> Zurück Nach oben Weiter Einen Webdienst programmieren Zum Anfang Kapitel 10. Die MySQLi-Erweiterung Copyright 2005 Sebastian Bergmann und dpunkt.verlag GmbH. (4 von 4) :38:58

14 Kapitel 10. Die MySQLi-Erweiterung Kapitel 10. Die MySQLi-Erweiterung Zurück Teil III. PHP-5-Programmierung. Weiter Kapitel 10. Die MySQLi-Erweiterung "A computer cannot turn bad data into good data." --John R. Pierce Das populäre Open-Source-Datenbanksystem MySQL bietet in seiner derzeit für den produktiven Einsatz empfohlenen Version 4.1 sowie in der kommenden Version 5.0 eine Vielzahl neuer Leistungsmerkmale. Für deren Nutzung bietet PHP 5 die neue MySQLi-Erweiterung ("MySQL Improved"). Diese ist nicht abwärtskompatibel zu PHP 4. Die alte Programmierschnittstelle ("mysql") kann jedoch parallel zu der neuen eingesetzt werden. Anhang A zeigt die entsprechende Build-Konfiguration, um sowohl die alte als auch die neue MySQL-Programmierschnittstelle in PHP 5 nutzen zu können. Zurück Nach oben Weiter Einen Webdienst verwenden Zum Anfang Die MySQLi-Erweiterung objektorientiert verwenden Copyright 2005 Sebastian Bergmann und dpunkt.verlag GmbH. 21:38:59

15 Die MySQLi-Erweiterung objektorientiert verwenden Die MySQLi-Erweiterung objektorientiert verwenden Zurück Kapitel 10. Die MySQLi-Erweiterung Weiter Die MySQLi-Erweiterung objektorientiert verwenden Die MySQLi-Erweiterung kann prozedural und objektorientiert verwendet werden. Beide Alternativen bieten jedoch denselben Funktionsumfang. Wir wollen zunächst die objektorientierte Verwendung betrachten. Beispiel 10.1 zeigt die objektorientierte Verwendung der MySQLi-Erweiterung analog zu dem in Beispiel 1.1 gezeigten Beispiel, das die MySQL-Erweiterung verwendet. Beispiel 10.1: Die MySQLi-Erweiterung objektorientiert verwenden $mysqli = new MySQLi( 'localhost', 'user', 'password', 'test' if (mysqli_connect_errno()) { printf( "Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error() exit; $result = $mysqli->query('select spalte FROM tabelle' if ($result) { while ($row = $result->fetch_assoc()) { //... $result->close( $mysqli->close(?> Eine Eigenheit der MySQLi-Erweiterung stellt die Verwendung von Unterstrichen in den Namen der Methoden und Instanzvariablen anstelle der üblichen StudlyCaps-Notation [10 ] dar. Tabelle Die Klassen der MySQLi-Erweiterung Klasse MySQLi MySQLi_Stmt Aufgabe Repräsentiert die Verbindung zum MySQL-Server. Repräsentiert eine vorbereitete Anfrage. MySQLi_Result Repräsentiert das Ergebnis einer Anfrage. Werden für die Verbindung zum MySQL-Server nur die Verbindungsparameter (Hostname oder Socket) sowie die Kennungsdaten (Benutzername und Passwort) benötigt, so können diese direkt dem Konstruktor der Klasse MySQLi übergeben werden. (1 von 3) :39:00

16 Die MySQLi-Erweiterung objektorientiert verwenden Sollen für die Verbindung stattdessen erweiterte Parameter, beispielsweise für eine Verschlüsselung der Client-Server-Kommunikation, gesetzt werden, so ist mit der Funktion mysqli_init() zunächst ein MySQLi-Objekt zu erzeugen. Über die entsprechenden Methoden, beispielsweise ssl_set(), können dann die entsprechenden Einstellungen vorgenommen werden, bevor die eigentliche Verbindung mit der Methode real_connect() hergestellt wird. Diese Methode akzeptiert dieselben Parameter wie der Konstruktor. Die Methode query() der Klasse MySQLi liefert ein Objekt der Klasse MySQLi_Result. Dieses kapselt die Ergebniszeilen der Anfrage. Da die Klasse MySQLi_Result leider nicht die Schnittstelle Iterator anbietet, kann das Objekt nicht direkt mit dem foreach- Operator verwendet werden. Stattdessen ist eine entsprechende while-schleife zu verwenden (siehe Beispiel 10.1). Die Klassen und Methoden der MySQLi-Erweiterung benutzen in PHP 5.0 [11 ] leider von Haus aus keine Ausnahmen, um die Behandlung von Fehlersituationen zu ermöglichen. Daher müssen entweder Funktionen wie mysqli_connect_errno() und mysqli_connect_error() (siehe Beispiel 10.1) verwendet werden, oder die Klasse MySQLi muss entsprechend durch Vererbung angepasst werden. Beispiel 10.2 zeigt eine von MySQLi abgeleitete Klasse, die bei Fehlern während des Verbindungsaufbau sowie bei Anfragefehlern eine entsprechende Ausnahme auslöst. Beispiel 10.2: Die MySQLi-Erweiterung um Ausnahmenbehandlung erweitern class MySQLi_Exception extends Exception { class MySQLi_ConnectionException extends MySQLi_Exception { class MySQLi_QueryException extends MySQLi_Exception { class My_MySQLi extends MySQLi { public function construct( $hostname, $username = '', $passwd = '', $dbname = '', $port = 3306, $socket = '') { parent:: construct( $hostname, $username, $passwd, $dbname, $port, $socket if (mysqli_connect_error()) { throw new MySQLi_ConnectionException( mysqli_connect_error(), mysqli_connect_errno() public function query($query) { $result = parent::query($query if ($this->error) { throw new MySQLi_QueryException( $this->error, (2 von 3) :39:00

17 Die MySQLi-Erweiterung objektorientiert verwenden?> $this->errno [ 10 ] Bei der Notation von Bezeichnernamen gibt es zwei etablierte Möglichkeiten, um Wörter, die Bestandteil des Namens sind, zu trennen. In der prozeduralen Programmierung geschieht dies meist mit einem Unterstrich, in der objektorientierten Programmierung benutzt man Groß- und Kleinbuchstaben, um die Wörter voneinander abzugrenzen. Hierbei wird das erste Zeichen eines Namens klein geschrieben, jedes neue Wort beginnt mit einem Großbuchstaben. [ 11 ] In PHP 5.1 soll sich dies ändern. Zurück Nach oben Weiter Kapitel 10. Die MySQLi- Zum Anfang Vorbereitete Anfragen verwenden Erweiterung Copyright 2005 Sebastian Bergmann und dpunkt.verlag GmbH. (3 von 3) :39:00

18 Vorbereitete Anfragen verwenden Vorbereitete Anfragen verwenden Zurück Kapitel 10. Die MySQLi-Erweiterung Weiter Vorbereitete Anfragen verwenden Das neue Client-Server-Protokoll, das MySQL seit Version 4.1 verwendet, unterstützt die Verwendung von vorbereiteten Anfragen. Diese ermöglichen eine effizientere Verarbeitung von Anfragen, die dynamisch zusammengesetzt werden. Hierzu werden die variablen Teile der Anfrage -- beispielsweise Werte, nach denen in einer Spalte einer Tabelle gesucht werden soll -- durch einen Platzhalter ersetzt. An diese Platzhalter können im Anschluss die entsprechenden Werte gebunden werden. Eine vorbereitete Anfrage muss für die mehrmalige Ausführung mit unterschiedlichen Werten nur einmal an den Datenbankserver übermittelt (und dort für die Ausführung vorbereitet) werden. Bei nachfolgenden Anfragen mit geänderten Werten müssen nur noch die neuen Werte übermittelt werden. Dies spart sowohl Zeit bei der Kommunikation zwischen Client und Server als auch bei der Ausführung der Anfrage. In Beispiel 10.3 erzeugen wir mit $mysqli->prepare() zunächst ein Objekt der Klasse MySQLi_Stmt. Dieses repräsentiert die Anfrage INSERT INTO tabelle (spalte) VALUES(?). Im Anschluss binden wir mit der Methode bind_param() die PHP-Variable $string an den Platzhalter der Anfrage. Ein Aufrufen der Methode execute() führt die vorbereitete Anfrage mit dem jeweils aktuellen Wert der PHP- Variablen $string als Wert für? auf. Beispiel 10.3: PHP-Variablen an die Platzhalter einer Anfrage binden $mysqli = new MySQLi('localhost', 'root', '', 'test' $stmt = $mysqli->prepare( 'INSERT INTO tabelle (spalte) VALUES(?)' $stmt->bind_param('s', $string $string = 'foo'; $stmt->execute( $string = 'bar'; $stmt->execute(?> Der erste Parameter der Methode bind_param() enthält einen String, in dem jedes Zeichen für den Typ einer gebundenen Variablen steht. Nach diesem ersten Parameter folgen die PHP-Variablen, die an die Anfrage gebunden werden sollen, in der entsprechenden Reihenfolge. Tabelle 10.2 zeigt die möglichen Typen und ihre Zeichen. Tabelle Die verfügbaren Typen für gebundene Parameter (1 von 2) :39:01

19 Vorbereitete Anfragen verwenden Typ Beschreibung i d s b Variable ist eine Integerzahl. Variable ist eine Gleitpunktzahl. Variable ist ein String. Variable ist ein BLOB. Dieser wird in mehreren Paketen an den Datenbankserver gesendet. Mit der Methode bind_result() der Klasse MySQLi_Stmt können die Spalten der Ergebniszeilen einer vorbereiteten Anfrage an PHP-Variablen gebunden werden (siehe Beispiel 10.4). Hierbei entfällt die (bei Ergebniszeilen mit vielen Spalten teure) Erzeugung eines Arrays für jede Ergebniszeile. Beispiel 10.4: Die Spalten der Ergebniszeilen an PHP-Variablen binden $mysqli = new MySQLi('localhost', 'root', '', 'test' $stmt = $mysqli->prepare('select spalte FROM tabelle' $stmt->execute( $stmt->bind_result($spalte while ($stmt->fetch()) { print $spalte. "\n";?> foo bar Innerhalb der while-schleife in Beispiel 10.4 enthält die PHP-Variable $spalte stets den Inhalt der Spalte spalte der aktuellen Ergebniszeile der Anfrage. Zurück Nach oben Weiter Die MySQLi-Erweiterung objektorientiert verwenden Zum Anfang Copyright 2005 Sebastian Bergmann und dpunkt.verlag GmbH. Die MySQLi-Erweiterung prozedural verwenden (2 von 2) :39:01

20 Die MySQLi-Erweiterung prozedural verwenden Die MySQLi-Erweiterung prozedural verwenden Zurück Kapitel 10. Die MySQLi-Erweiterung Weiter Die MySQLi-Erweiterung prozedural verwenden Bei der prozeduralen Verwendung der MySQLi-Erweiterung ist zu betrachten, dass sich die Funktionsnamen gegenüber der MySQL- Erweiterung von mysql_*() zu mysqli_*() geändert haben. Ferner erwarten die Funktionen der MySQLi-Erweiterung die explizite Angabe der zu verwendenden Verbindungsressource als Parameter für Funktionen wie beispielsweise mysqli_query(). Die Angabe dieses Parameters war bei der MySQL-Erweiterung optional, da diese die Verwendung einer Standardverbindung unterstützte. Eine Standardverbindung wird von der MySQLi-Erweiterung ebensowenig unterstützt wie persistente Verbindungen. Letztere werden in Zukunft durch die Verwendung eines Verbindungsmanagers ersetzt, sobald dieser als Bestandteil von MySQL 5.0 verfügbar ist. Beispiel 10.5 zeigt die prozedurale Verwendung der MySQLi- Erweiterung analog zu dem in Beispiel 10.1 gezeigten Beispiel. Beispiel 10.5: Die MySQLi-Erweiterung prozedural verwenden $connection = mysqli_connect( 'localhost', 'user', 'password', 'test' if ($connection === FALSE) handle_error(mysqli_connect_error() $result = mysqli_query( $connection, 'SELECT spalte FROM tabelle' if ($result === FALSE) handle_error(mysqli_error($connection) while ($row = mysqli_fetch_assoc($result)) { //... (1 von 2) :39:02

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach)

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach) Multimedia im Netz Wintersemester 2013/14 Übung 02 (Hauptfach) Ludwig-Maximilians-Universität München Multimedia im Netz WS 2013/14 - Übung 2-1 PHP und MySQL Es werden mehrere APIs von PHP angeboten um

Mehr

Die Datenbank und der Strukturentwurf wurden vorher mit phpmyadmin erzeugt.

Die Datenbank und der Strukturentwurf wurden vorher mit phpmyadmin erzeugt. PHP und MySQLi Der Benutzer kann mit Hilfe von PHP eine komfortable Schnittstelle zu den MySQL-Datenbanken herstellen, um Daten anzuzeigen, einzufügen, zu verändern und zu löschen. Die Datenbank und der

Mehr

WebServices Zwischen Buzzword und Nutzen

WebServices Zwischen Buzzword und Nutzen WebServices Zwischen Buzzword und Nutzen Tobias Koenig Übersicht Webservices Allgemein WSDL Anwendungsbeispiele Programmierung Perl Python C++/KDE Zusammenfassung LUG Dresden 2005 p.1 Webservices Trennung

Mehr

WSDL. Heutige Vorlesung. Wozu WSDL? Wie wird WSDL verwendet? Language. Services. Description. Web. Abstrakte vs. konkrete Syntax

WSDL. Heutige Vorlesung. Wozu WSDL? Wie wird WSDL verwendet? Language. Services. Description. Web. Abstrakte vs. konkrete Syntax Heutige Vorlesung WSDL Prinzipieller Aufbau von WSDL-Beschreibungen Beschreibung von Protokoll-Bindungen in WSDL Vor- und Nachteile von WSDL Lernziel Google-WSDL lesen und erweitern können Klaus Schild,

Mehr

Werner Motzet und Tim Pistor präsentieren:

Werner Motzet und Tim Pistor präsentieren: *Außer Drucken Werner Motzet und Tim Pistor präsentieren: SSL HTTP RPC PHP lsx Java IPhone WSDL Kaffee XML LotusScript SOAP Provider Consumer Seit 2008 freier Entwickler Dynamische (Web-) Anwendungen

Mehr

PHP Programmierung. Seminarunterlage. Version 1.07 vom

PHP Programmierung. Seminarunterlage. Version 1.07 vom Seminarunterlage Version: 1.07 Version 1.07 vom 19. Dezember 2018 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Dynamische Webseiten mit PHP. Oder: LAMP - The open way Dynamische Webseiten mit PHP Oder: LAMP - The open way Verbreitung Neben ASP verbreitetste Web-Scripting-Umgebung LAMP (Linux, Apache, mysql, PHP): freie Alternative zu M$ Überblick Dynamische Webseiten

Mehr

Affiliate SOAP-Schnittstelle

Affiliate SOAP-Schnittstelle Affiliate SOAP-Schnittstelle Inhalt: SOAP-Statistik - Schnittstellenbeschreibung - URI - Methode - Authentifizierung - Detaillierte Beschreibung des Soap-Service - Suchen von Transaktionsdaten - Statistiken

Mehr

Verteilte Systeme: Übung 4

Verteilte Systeme: Übung 4 Verteilte Systeme: Übung 4 WSDL und SOAP Oliver Kleine Institut für Telematik https://www.itm.uni-luebeck.de/people/kleine SOAP Nachrichten Serialisierung in XML Root-Element einer SOAP Nachricht ist

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Unified-E Standard WebHttp Adapter

Unified-E Standard WebHttp Adapter Unified-E Standard WebHttp Adapter Version: 1.5.0.2 und höher Juli 2017 Inhalt 1 Allgemeines... 2 2 Adapter-Parameter in Unified-E... 2 3 Symbolische Adressierung... 3 3.1 ReadValues-Methode... 4 3.2 WriteValues

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Agenda. Web Services unter Lotus Notes/Domino

Agenda. Web Services unter Lotus Notes/Domino Agenda Vorstellung Was sind Web Services? Funktionsweise von Web Services Web Service Provider / Consumer Erstellen eines Web Service Providers Erstellen eines Web Service Consumers Tips & Tricks 2 Über

Mehr

Notes kann alles*! *Außer Drucken. Angaben ohne Gewähr.

Notes kann alles*! *Außer Drucken. Angaben ohne Gewähr. Werner weiß Tim weiß Lotus weiß Notes kann alles*! *Außer Drucken. Angaben ohne Gewähr. (auch Kaffee kochen) Werner Motzet und Tim Pistor präsentieren: Webservices mit Lotus Notes Werner Motzet und Tim

Mehr

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Web-Sevices : WSDL Entwicklung von Web-Anwendungen Web-Sevices : WSDL Entwicklung von Web-Anwendungen Axel Reusch : ar047 MIB page 1 : 50 Agenda! Allgemeines! Prinzip! Anwendung! Details! WSDL und SOAP! Beispiel mit Java! Erweiterungen! Vorteile! Nachteile!

Mehr

Wiederholung: Beginn

Wiederholung: Beginn B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben

Mehr

Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen

Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen Staatliche Fachschule für Mechatronik- und Elektrotechnik Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen von Wagemann Andreas 3. Januar 2018 Entwicklungsarbeit Staatliche Fachschule für

Mehr

3. Stud.IP-Entwickler-Workshop 2. Juni 2006 Workshop 1a: Gib mir 5: Lohnt sich der Umstieg auf PHP5 und MySQL5? André Noack

3. Stud.IP-Entwickler-Workshop 2. Juni 2006 Workshop 1a: Gib mir 5: Lohnt sich der Umstieg auf PHP5 und MySQL5? André Noack 3. Stud.IP-Entwickler-Workshop 2. Juni 2006 Workshop 1a: Gib mir 5: Lohnt sich der Umstieg auf PHP5 und MySQL5? André Noack Gliederung (nicht mehr so) Neues in PHP 5 Neues in MySQL 4.1 / 5 Probleme mit

Mehr

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern Datenbanken werden durch ein spezielles Programm verwaltet, einen sogenannten Datenbankserver, in unserem Fall den MySQL-Datenbankserver.

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Grundlagen der Web-Entwicklung INF3172

Grundlagen der Web-Entwicklung INF3172 Grundlagen der Web-Entwicklung INF3172 Web-Services Thomas Walter 16.01.2014 Version 1.0 aktuelles 2 Webservice weitere grundlegende Architektur im Web: Webservice (Web-Dienst) Zusammenarbeit verschiedener

Mehr

Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen

Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen Staatliche Fachschule für Mechatronik- und Elektrotechnik Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen von Voit Alexander 3. Januar 2018 Entwicklungsarbeit Staatliche Fachschule für Mechatronik-

Mehr

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2 iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...

Mehr

PHP objektorientiert

PHP objektorientiert PHP objektorientiert Konzepte, Techniken, Code von Jörg Krause, Christian Alkemper, Peter Lavin 1. Auflage Hanser München 2006 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 40762 6 Zu Leseprobe

Mehr

Oracle & Java HOW TO

Oracle & Java HOW TO Oracle & Java HOW TO Helge Janicke, Niels-Peter de Witt, Karsten Wolke 21. Januar 2002 Inhaltsverzeichnis 1 Java-Anbindung an Oracle-DB 2 2 Benötigte Programme und Daten 2 3 Einbinden der Klassen 2 4 Aufbau

Mehr

1a) SQL Stored Procedure via IDs

1a) SQL Stored Procedure via IDs 1a) SQL Stored Procedure via IDs Erstellen Sie analog zu Aufgabe 2d) des ersten Übungsblatts eine SQL Stored Procedure, welche den Freundschaftsgrad zweier Benutzer eines sozialen Netzwerks aktualisiert.dazu

Mehr

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL Seminar E-Services WS 02/03 WSDL Web Services Description Language SES 02 - WSDL Zum Ablauf Einleitung Webservices und WSDL Grundlagen (XML - Schema und Namespaces) WSDL Syntax Beispiel Zusammenfassung

Mehr

Willkommen. Datenbanken und Anbindung

Willkommen. Datenbanken und Anbindung Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein

Mehr

Verteilte Systeme: Übung 4

Verteilte Systeme: Übung 4 Verteilte Systeme: Übung 4 WSDL und SOAP Oliver Kleine Institut für Telematik https://www.itm.uni-luebeck.de/people/kleine SOAP Nachrichten Serialisierung in XML Root-Element einer SOAP Nachricht ist

Mehr

Motivation. Web Services in der Bioinformatik. Web Services. Motivation (2) Definition

Motivation. Web Services in der Bioinformatik. Web Services. Motivation (2) Definition Web Services in der Bioinformatik 1. Motivation 2. Web Services - Definition - Funktionsweise - Umsetzung (WSDL, SOAP, UDDI) 3. Beispiele - XEMBL - OpenBQS - OmniGene 4. Zusammenfassung Situation: Viele

Mehr

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe MySQL 4, 5 Kapitel 20a: PHP Teil 2 Gliederung 1 2 Gliederung 1 2 Die ermöglicht ein Bedingtes Ausführen von Code-Abschnitten. Nur wenn die Bedingung erfüllt ist wird der Block hinter if ausgeführt. Ist

Mehr

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona DAS EINSTEIGERSEMINAR Datenbankprogrammierung mit MySQL 5 und PHP 5 von Helma Spona Neuausgabe Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona schnell und portofrei erhältlich bei beck-shop.de DIE

Mehr

datenlink-schnittstelle Version 1.0

datenlink-schnittstelle Version 1.0 www.datenlink.info datenlink-schnittstelle Version 1.0 Inhalt 1 Allgemeines 2 1.1 Datenaustausch... 2 1.2 Zugriffstypen... 2 2 Format der Rückgabewerte 3 2.1 HTTP-Statuscodes... 3 2.2 Rückgabewerte...

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Web Services. Standards und Realisierung in Java

Web Services. Standards und Realisierung in Java Standards und Realisierung in Java http://werner.gaulke.net 4.6.2007 Idee Aufbau und Standards und Java Outline 1 Idee Idee hinter? 2 Aufbau und Standards Schichtenmodell WSDL Fazit WSDL SOAP Fazit SOAP

Mehr

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Java-Grundkurs für Wirtschaftsinformatiker

Java-Grundkurs für Wirtschaftsinformatiker Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften JAVA Weiterführende Spracheigenschaften 100 AGENDA Strings Exceptions Enums Generics Lambdas & Methods Bulk-Operations 101 DIE KLASSE STRING Zeichenketten werden in Java als String repräsentiert Wie der

Mehr

Java: MySQL-Anbindung mit JDBC.

Java: MySQL-Anbindung mit JDBC. Java: MySQL-Anbindung mit JDBC Vorarbeiten Wir brauchen: - MySQL-Server - JDBC-Treiber - (Import java.sql.*) Vorarbeiten MySQL-Server in unserem Falle: WAMP (= Apache) (runterladen, installieren, starten)

Mehr

Übungen. DI (FH) Levent Öztürk

Übungen. DI (FH) Levent Öztürk Übungen DI (FH) Levent Öztürk Übersicht Entwicklungsumgebung PHPMYADMIN Datenbank anlegen User anlegen Tabellen Anlegen Datenbankzugriffe über PHP 01.04.2014 DI (FH) Levent Öztürk 2 Entwicklungsumgebung

Mehr

BiPRO und PHP Marcel Maaß

BiPRO und PHP Marcel Maaß BiPRO und PHP Marcel Maaß MM Newmedia Warum eigentlich PHP? Weil BiPRO SOAP basiert ist Das Simple Object Access Protocoll (SOAP) stützt sich auf XML. XML ist laut Definition plattform- und implementationsunabhängig.

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Inhaltsverzeichnis. 4.9 Aufgaben... 63

Inhaltsverzeichnis. 4.9 Aufgaben... 63 Inhaltsverzeichnis 1 Einleitung 1 1.1 Programmierung... 1 1.2 Objektorientierte Programmierung... 2 1.3 Voraussetzungen und Ziele dieses Buches... 3 1.4 Aufbau dieses Buches... 4 2 Das imperative Hamster-Modell

Mehr

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER Dirk Ammelburger XML Grundlagen der Sprache und Anwendungen in der Praxis HANSER r 1 Einleitung 2 1.1 Über dieses Buch 3 1.2 Für wen ist das Buch gedacht? 4 1.3 Wie ist das Buch aufgebaut? 5 1.4 Konventionen

Mehr

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5 Übersicht Angewandte Informatik 2 - Tutorium 6 Besprechung: Übungsblatt 5 Götz Bürkle (goetz@buerkle.org) Übungsblatt 5: Aufgabe 4 - Webservices Institut für Angewandte Informatik und Formale Beschreibungsverfahren

Mehr

easylearn Webservice lsessionservice Interface für Single Sign On (SSO)

easylearn Webservice lsessionservice Interface für Single Sign On (SSO) - 1 - easylearn Webservice lsessionservice Interface für Single Sign On (SSO) SDN AG, Solution Development Network Dezember 2008 - 2 - Inhaltsverzeichnis Inhaltsverzeichnis... 2 easylearn Webservice lsessionservice...

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen

Mehr

Programmierung für Mathematik HS11

Programmierung für Mathematik HS11 software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren

Mehr

2 Anlegen und Konfigurieren von Datenbanken 35

2 Anlegen und Konfigurieren von Datenbanken 35 Inhalt 1 Einführung und Installation 9 1.1 Einführung 11 1.1.1 Aufbau 11 1.1.2 Schreibkonventionen 12 1.1.3 Zur Beispieldatenbank 13 1.1.4 Kurz-Installation 19 1.2 Die Oracle-Installation 20 1.3 Die Installation

Mehr

33 Computer & Literatur Verlag GmbH

33 Computer & Literatur Verlag GmbH Klaus Schmidt PHP 4 33 Computer & Literatur Verlag GmbH Inhaltsverzeichnis Vorwort 11 A Tutorial 17 1 Grundlagen 19 1.1 PHP und seine Syntax 23 1.2 Aufgaben 25 2 Sprachbeschreibung 27 2.1 Variablen 28

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

(Ausnahmebehandlung)

(Ausnahmebehandlung) 16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

FRANZIS PROFESSIONAL SERIES. Herbert Burbiel. SOA & Webservices. ~ in der Praxis. 197 Abbildungen

FRANZIS PROFESSIONAL SERIES. Herbert Burbiel. SOA & Webservices. ~ in der Praxis. 197 Abbildungen FRANZIS PROFESSIONAL SERIES Herbert Burbiel SOA & Webservices ~ in der Praxis 197 Abbildungen 9 Inhaltsverzeichnis 1 Bedienungsanleitung zum Buch 15 1.1 Nutzen des Buchs 15 1.2 So verwenden Sie das vorliegende

Mehr

WSDL. Web Services Description Language. André Vorbach. André Vorbach

WSDL. Web Services Description Language. André Vorbach. André Vorbach André Vorbach WSDL Web Services Description Language André Vorbach Übersicht Was ist WSDL? Dokumentenstruktur Elemente Definitions Types Messages porttype Binding Service SOAP-Bindings Beispiel Was ist

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

WSDL K. Schild, 2006 / M. Mochol

WSDL K. Schild, 2006 / M. Mochol WSDL 1 Block Web Services Vorlesung 4 + 1 + 1 Termine Web Services, SOA, RPCs vs. Messaging Übung 2 Termine Vorlesungs- termin 06.06. 20.06. Übungs- termin SOAP im Detail SOAP 25./26.06 27.06. WSDL im

Mehr

Java Web Services mit

Java Web Services mit Java Web Services mit Seminar Softwaretechnik WS 2004/05 Lehrstuhl für Praktische Informatik an der WWU Münster Jürgen de Braaf - 05.01.2005 Inhalt Definition und Eigenschaften von Web Services Einführendes

Mehr

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.4 Exceptions - 1 - Ausnahmen (Exceptions)

Mehr

Praktische Einführung in.net. Kai Stammerjohann

Praktische Einführung in.net. Kai Stammerjohann Praktische Einführung in.net Kai Stammerjohann Inhalt CLR Eigenschaften Datenbankzugriff Web Service Webforms Schlussfolgerung Inhalt CLR Eigenschaften Datenbankzugriff Web Service Webforms Schlussfolgerung

Mehr

PHP OOP, Design Patterns und UML. Marco Skulschus

PHP OOP, Design Patterns und UML. Marco Skulschus PHP OOP, Design Patterns und UML Marco Skulschus Page ta Controller Transfer bject Two-Step-View Row Transaction Script Data Mapper Data Gateway Application Controller Table Module Transform View Front

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

Mehr

SOA, Webservices und SOAP für Schnelleinsteiger

SOA, Webservices und SOAP für Schnelleinsteiger SOA, Webservices und SOAP für Schnelleinsteiger (C)opyright 2005 by Jochen Vajda Inhalt Einführung I. Was ist SOA? II. Webservices, SOAP und WSDL SOAP mit PHP5 I. Benötigte Komponenten II. Client ohne

Mehr

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein Definition 2 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ausnahmebehandlung und Nebenläufigkeit 9. Vorlesung am 15. Dezember 2010 Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A

Mehr

Klaus Schmidt PHP 4. Computer & Literatur Verlag GmbH

Klaus Schmidt PHP 4. Computer & Literatur Verlag GmbH Klaus Schmidt PHP 4 Computer & Literatur Verlag GmbH Inhaltsverzeichnis Vorwort 11 A Tutorial 15 1 Grundlagen 17 1.1 PHP und seine Syntax 21 1.2 Aufgaben 23 2 Sprachbeschreibung 25 2.1 Variablen 26 2.2

Mehr

PHP- Umgang mit Datenbanken (1)

PHP- Umgang mit Datenbanken (1) PHP- Umgang mit Datenbanken (1) Weitere Funktionen zum Umgang mit Datenbanken (Erzeugen, Löschen) und Tabellen (Erzeugen, Löschen) Zum Beispiel für das Erzeugen einer neuen Datenbank $dbname= blumendb

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf

Mehr

WSDL. Malgorzata Mochol Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

WSDL. Malgorzata Mochol Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme WSDL Malgorzata Mochol Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme mochol@inf.fu-berlin.de Block Web Services Vorlesungs -termine 11.06. 18.06. Vorlesung (4 + 1 +

Mehr

HTTP- SOAP- Schnittstelle

HTTP- SOAP- Schnittstelle HTTP- SOAP- Schnittstelle für Brief- und SMS- Versand und Account- Verwaltung Stand: 09. September 2009 Die Nutzung der Schnittstelle unterliegt den Allgemeinen Geschäftsbedingungen der OEKOPOST Deutschland

Mehr

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik SOA Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik Laderampen müssen passen Modularisieren Softwarearchitektur Modul A Modul B Modul C Modul D Große Anwendung im Unternehmen Modul

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2012/2013, SS 2013 Programmieren I + II Regeln der Code-Formatierung Die hier vorgestellten

Mehr

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2 Vorwort zur zweiten Auflage 1 Vorwort zur ersten Auflage 2 1 Über dieses Buch 3 1.1 WarumdiesesBuch?... 3 1.2 Voraussetzungen...... 4 1.3 Systematik... 4 1.4 WieliestmandiesesBuch?... 6 1.5 ZugriffaufdieQuellenzudenBeispielen...

Mehr

Dokumentations-Richtlinien

Dokumentations-Richtlinien Prof. Dr. Reinhold Kröger Sven Bauer Stand 15.3.2004 Fachhochschule Wiesbaden Fachbereich Informatik Inhaltsverzeichnis 1 Wozu dienen Dokumentations-Richtlinien?... 1 2 Dokumentation des Quellcodes...

Mehr

Übungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm

Übungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm Z.11Fehlerbehandlung Programm beenden (System.exit()) meist eine schlechte Idee Ausgabe einer Fehlermeldung hilft nicht den Fehler zu überwinden spezieller Rückgabewert kennzeichnet Fehler Konstruktoren

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage HSR Rapperswil 2001 Markus Rigling Programmieren: Exceptions 1 1. Auflage Inhaltsverzeichnis: 1. Was sind Exceptions?... 3 2. Struktur des Exception Handling... 3 3. Try-Block... 4 4. Exception Handler

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Taschenbuch. Paperback ISBN 978 3 8266 7414 3 Weitere Fachgebiete > EDV, Informatik > Programmiersprachen: Methoden > Prozedurorientierte Programmierung

Mehr

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke Inhaltsverzeichnis 1 Der objektorientierte Ansatz... 1 1.1 Ein einführendes Beispiel...2 1.1.1 Aktive Objekte...4 1.1.2 Klassifikation...4 1.1.3 Datenkapselung...6 1.2 OOP im Überblick...6 1.3 Programmaufbau...7

Mehr

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und 8. PHP Prof. Dr.-Ing. Wolfgang Lehner Diese Zeile ersetzt man über: Einfügen > Kopf- und PHP PHP (Hypertext Preprocessor) Serverseitige Skriptsprache (im Gegensatz zu JavaScript) Hauptanwendungsgebiet:

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

Definition Web Service

Definition Web Service Gliederung Einführung Definition Web Service Drei Schhichtenmodell Architectural Model System Model Web Service Standards SOAP WSDL UDDI Types of Web Services Programmatic Web Services Interactive Web

Mehr

Ausnahmen (Exceptions)

Ausnahmen (Exceptions) Ausnahmen (Exceptions) Herkömmliche Fehlerbehandlung Jede Methode liefert einen Fehlercode int result; result = p(); if (result == ok) { result = q(); if (result == ok) { result = r(); if (result == ok)

Mehr

Programmiertechnik Klassenvariablen & Instantiierung

Programmiertechnik Klassenvariablen & Instantiierung Programmiertechnik Klassenvariablen & Instantiierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Klassenvariablen Zur Erinnerung: Klassen bestehen aus Variablen und Methoden; beide zusammen

Mehr

Anleitung: Verbindung mit der Datenbank

Anleitung: Verbindung mit der Datenbank Anleitung: Verbindung mit der Datenbank Der Zugriff auf die MySQL-Datenbank selbst kann mit sämtlichen dafür erhältlichen Tools (Beispielsweise SquirrelSQL, Toad für MySQL, EMS SQL Manager, TOra oder ähnliches)

Mehr

Überblick. Klassen Optionale Typen DOM. Optionale Parameter Klassen. Einführung. 2 Motivation 3 Werkzeuge 4 Demonstration 5 Dart

Überblick. Klassen Optionale Typen DOM. Optionale Parameter Klassen. Einführung. 2 Motivation 3 Werkzeuge 4 Demonstration 5 Dart Eine kurze Lehrstuhl für Datenmanagement und -exploration RWTH Aachen Proseminar SS 2012 1 / 17 Überblick 1 2 3 4 5 6 7 8 2 / 17 1 -basierte Programmiersprache für Webanwendungen Entwickelt von Google

Mehr

Team Developer 6.3.NET

Team Developer 6.3.NET Team Developer 6.3.NET Helmut Reimann Team Developer 6.3.Net.Net Assemblies einbinden Exception Handling Web Services .Net Assemblies.Net Assemblies können in Win32 und in.net Anwendungen eingebunden werden.net

Mehr