PHP/JS
Fragebögen
Fragebögen
-
- 1 / 103
-
Lernkarten
Wann wird in PHP mit einem "::" und wann mit einem "->" auf Elemente von KLassen zugegriffen? Erläutern Sie eine dazu gehörende allgemeine Merkregel.
- :: constante oder static, die Zurodnung existiert vor der Laufzeit
- -> was mit new() erzeugt wird, während der Laufzeit
Wann wird "this" und wann wird "self" innerhalb von Funktionen in Klassen benutzt?
- this: Zugriff auf Objekte
- self: Zugriff auf konstante und statc Attribute
Was bedeutet das Schlüsselwort final vor einem Attribut oder Methode einer PHP-Klasse?
- so lässt sich ein Überschreiben durch Vererbung verhindern
- Attribute mit final werden zu Konstanten innerhalb einer Klasse
In welchen Fällen ist die magische Methode _clone() erforderlich? Was wird in dieser dann implementiert?
- wenn man ein Objekt und auch Attribut-Objekte clonen möchte
- Was im Konstruktor steht soll mit dem Schlüsselwort clone auch in der _clone Methode stehen
Was wird unter einer Wrapper-Klasse (Hüllklasse) verstanden? Wann sollten diese Klassen realisiert und benutzt werden?
- Homogenisierung von Schnittstellen: eine Wrapper-Klasse verdeckt die Schnittstelle einer anderen Klassen zwecks Anpassung oder Vereinheitlichung von Schnittstellen nach außen
- Dnak Hüllklassen muss sich der Benutzer nicht darum kümmern, ob er z.B MySQL
Was leisten Fabrik-Klassen? Wann sind sie sinnvoll?
- Sie sollen den Aufbau eines Objektes oder eines Geflechtes von Objekten realisieren und verdecken
- sinnvoll, wenn:
- beim Aufbau mehrerer Klassen alternativ verwendbar sind, also wenn eine Konfiguration möglich ist
- der Aufbau vernetzter Objekte komplex ist
- der Aufbau versteckt werden soll/muss
Müssen Fabric- und Wrapper-Klassen gemeinsam benutz werden?
nein
Skizzieren Sie ein kleines Bsp für den ersten PHP-Zugriff auf eine MySQL-Datenbank. Benutzen Sie dazu das PDO-Objekt
$pdo = new PDO('mysql:host=localhost;dabname=test', 'username', 'password');
Wenn Sie mit PDO auf eine Datenbank erstmalig zugreifen, kannes sei, dass eine Exception geworfen wird. Skizzieren Sie das syntaktisches Schema PHP, wenn Exceptions geworfen werden.
if(xy){
throw new Exception("Value must be 1 or below);
}try{
xy
}catch(Exception $e){
finally{...}
Was bedeutet PDO? Und welchen Sinn hat diese Klasse? Warum sollte PDO statt der Software vom Datenbanken-Hersteller verwendet werden?
- Portable Data Object: eine Wrapperklasse für Schnittstellen zu Datenbanken
- die speziellen Eigenschaften der SQL-Dialekte der jeweiligen Sprachen bleiben erhalten
- Die Schnittstellen zu verschiedenen Datenbanken unterscheiden sich, daher wurde mit PDO eine einheitliche Schnittstelle geschaffen
Wie wird mit PDO ein SQL-Statement, das keine Daten aus der Datenbanken an den Aufrufer liefert, an die Datenbanken abgesetzt?
mit exec (execute)
Wie wird mit PDO ein Select-Statement, das Daten an den Aufrufer liefert, an die Datenbank abgesetzt?
mit Query
Mit welcher PDO-Routine kann auf das Ergebnis eines Selects zugegriffen werden? Nennen Sie zwei Möglichkeiten.
$data= $db->query($query);
$rows= $data->fetch();$data= $db->query($query);
$table= $data->fetchAll();
Warum müssen wir vor der Verarbeitung von Formularen immer alle Daten geprüft werden? Beschreiben Sie einen Problemfall.
- sind alle erforderlichen Felder audgefüllt
- ist Eingabe wirklich Zahl? ein Name?
Skizzieren Sie das allgemeine Schema bei der Benutzung von Prepared Statements.
- Query als String vorbereiten
- Statement = (DB-> Prepare Statement)
- Parameter setzen
- Statement ausführen
- Ergebnisse in Variablen speichern
Worin liegt die Ideen bei den Prepared Statements? Nennen Sie einen Anwendungsfall, bei dem die Benutzung von derartigen Statements einen Vorteil bringt.
- Prepared Statements = Abfrage muss nur einmal geparst werden
- Eine Query wird regelmäßig mit anderen Parametern benötigt, so kann Zeit gespart werden
Was wird unter einer SQL-Injection verstanden?
Die Ausnutzung einer Sicherheitslücken in Zusammenhang mit SQL-Datenbanken, die durch mangelnde Maskierung oder Überprüfung von Metazeichen in Benutzereingaben entsteht
Lassen sich mit Prepared Statement SQL-Injection-Angriffe verhindern? Falls ja, woran liegt das?
Ja, da Parameter für Prepared Statements nicht maskiert werden müssen
Sie wollen mit Hilfe von Prepared Statements eine neue Zeilen z.B. in die Tabelle "Adresse" einfügen. Wie sieht das SQL-Insert-Statement aus?
Insert into adress (a,b,c) values(1,2,3);
Es gibt zwei Möglichkeiten die Parameter für ein SQL-Statement bei den Prepared Statements anzugeben. Beschreiben Sie beide.
- Doppelpunkt, Name (Bennenung)
- Fragezeichen
Welche der zwei Möglichkeiten die Parameter für ein SQL-Statement bei den Prepared Statements sollten Sie benutzen - und warum?
Doppelpunkte sollten verwendet werden, da Wartung verbessert wird
Wie sieht das syntaktische Schema für Transaktionen bei der Benutzung von PDO aus?
- beginTransaction()
- update & execute
- mit commit() wird abgeschlossen (bzw. rollback())
Sie wollen Ihren Code möglichst wiederverwendbar gestalten; durch welche Konstruktion können Sie anwendungsspezifische Daten, wie z.B. Passwörter für Datenbanken, vom allgemeinen Code trennen?
Auslagern in Datei