echo $begrüßung;
Dürfte dann so richtig sein:
Ob etwas richtig ist oder nicht erfährt man durch Funktionstests. Ich mache diese nicht nur hinterher sondern laufend bei Code-Schreiben. Hast du für all deine Anwendungsfälle Beispiele erstellt und probiert ob sie ein richtiges Ergebnis liefern? Außerdem gibt es diverse Möglichkeiten, dass etwas schief läuft. Bitte überlege dir, welche Fehler auftreten können, versuch sie zu simulieren und schau dir an, ob die Reaktion darauf deinen Erwartungen entspricht.
$mysqli = self::\_getConnection();// das ist eine private Methode, die mir ein mysqli-Objekt mit aktiver Verbindung gibt.
Hier holen wir uns eine Connection. Ich gehe davon aus, dass diese Funktion so implementiert ist, dass sie im Fehlerfall eine Exception wirft. (Möglicherweise hab ich das bisher nicht erwähnt.) An dieser Stelle habe ich kein Auffangen der Exception eingebaut, weil ich nicht sehe, was man an dieser Stelle Sinnvolles mit der Exception anfangen kann. Verbindungsfehler kann man nicht überspielen, wenn man eine Query über die Verbindung absetzen will. Eine Fehlerbehandlung bringt an der Stelle nichts. Also wird die Exception an den Aufrufer dieser Methode durchgereicht.
Wenn die Verbindung nicht erstellt werden konnte gibt es hier einen Abbruch.
$mysqliResult = $mysqli->query($sql, MYSQLI\_USE\_RESULT); # Query Fehlgeschlagen if (!$mysqliResult){ throw new Exception("Query fehlgeschlagen <p>".$sql."</p>");
Zum Grundlagenwissen der OOP gehört auch das Wissen über die Arbeitsweise von Exceptions. Ein throw beendet die aktuelle Verarbeitung und setzt beim nächsten erreichbaren catch fort. Bitte informiere dich zu Exceptions. Der nachfolgende Code kann nicht ausgeführt werden, da er wegen der geworfenen Exception unerreichbar ist.
$result=false; if (mysqli\_error($mysqli)) { errorlog::getError(1, "MySQL Query-Error, vllt sind die Zugangsdaten falsch.<p>".$sql."</p>", mysqli\_error()); $result = false; }
Die Verbindung wurde in einem früheren Schritt aufgebaut. Wir sind hier bereits beim Abarbeiten der Query. Die Zugangsdaten können keine Ursache für eine nicht erfolgreiche Query sein, denn ohne eine Verbindung lohnt es sich nicht, eine Query zu starten.
Wenn ein Fehler aufgetreten ist und eine Meldung geloggt werden soll, nützen keine Spekulationen. Die Stelle, an der der Fehler auftrat und die vom System erzeugte Meldung sowie Begleitumstände (Variableninhalte) sind zur Fehlersuche interessant.
# Betroffenen Datensätze $arows=$mysqli->affected\_rows; if($affectedRows == 0) # Query fehlgeschlagen
Diese unterschiedlichen Variablennamen sollten bei einem Probelauf auffallen, denn dann sollte es eine E_NOTICE geben.
----------------
Nach dem, was ich bisher gesehen habe, hast du ehrgeizige Ziele, aber dir fehlen enscheidende Dinge zu deren Erreichen. Grundlagenwissen und ein Mindestmaß an Erfahrung mit dem Umgang der eingesetzten Werkzeuge sind Voraussetzungen zum Erfolg. Auch das Verständnis für Konzepte ist wichtig. Wann passiert was und welche Fehler können dabei auftreten. Ich tue mich schwer, dir eine Empfehlung zu geben, wie du die Defizite beseitigen kannst außer einem allgemeinen Lesen, Üben, Lesen, Üben, Üben, Üben.
Wenn die Möglichkeiten mitgelieferten API nicht ausreichen und man mehr Funktionalität und Komfort haben möchte, kann man auf die zur Genüge vorhandenen Datenbankabstraktionen zugreifen. Denn oft bieten diese Abstraktionen nicht nur eine einheitliche Schnittstelle zu verschiedenen Systemen (das braucht man weniger häufig als es immer als Vorteil hervorgehoben wird) sondern auch Mehrwert durch Funktionalität. Nimm dir lieber für den Anfang eines dieser fertigen Systeme, selbst wenn es PDO ist, und nimm dir außerdem ein Buch oder Tutorials zur OOP unter PHP, denn ohne diese Grundlagen kommen wir hier nicht wirklich weiter.
echo "$verabschiedung $name";