echo $begrüßung;
Ich hatte ja daher auch die Funktion "addslashes" verwendet um den Verzeichnis Pfad zu maskieren. Denn ich weiss ja nicht vorher was in der Variablen $verzeichnis steht.
Im Inhalt einer Variablen sind keine Maskierzeichen mehr vorhanden. Sie werden nur dafür gebraucht, einen String im Programmcode zu notieren, denn auch hier hast du wieder Code und Daten gemischt vorliegen, und musst irgendwie die Daten vom Code unterscheiden.
Siehe auch PHP Manual (wobei ich euch das ja nicht sagen muss)
...Diese Funktion ist z.B. für Datenbankabfragen wichtig. Die behandelten Zeichen sind das einfache und der doppelte Anführungszeichen (' und "), der Backslash selbst () sowie NUL (das Null-Byte).
Und ist die Behandlung dieser angegebenen Zeichen für das verwendete Datenbanksystem ausreichend? Für MySQL vielleicht. Unter Umständen. Aber hattest du nicht auch anderswo gesagt, dass du vielleicht mal MySQL gegen was anderes austauschen willst? Und kannst du garantieren, dass dort genau die gleichen Zeichen zu behandeln sind, die addslashes() behandelt, und das noch dazu in der gleichen Art, wie es addslashes() macht? Wohl kaum. Deswegen sollst du ja diese allgemeine Funktion vergessen und durch eine jeweils spezialisiertere, genau auf den Kontext zugeschnittene Form austauschen.
Ein Beispiel für die Verwendung von addslashes() ist das Schreiben von Daten in eine Datenbank....
Das ist falsch formuliert. Aufgabe der Quotierung und Maskierung ist nicht das Schreiben in eine Datenbank sondern die Notation der Daten in einem SQL-Statement zum Zwecke des Transport zu einem DBMS. Das eigentliche Schreiben in die dem DBMS zugrunde liegende Datenhaltung kann mir als Anwender im Prinzip egal sein.
Also kann es doch nicht so ganz falsch gewesen sein oder?
Es war nicht ganz falsch, aber auch nicht ganz richtig.
Kannst du vielleicht auch zufällig was zu meinem Mysql_num_row Problem unter PDO sagen?
mysql_num_rows() ist eine Spezialität der MySQL-Client-API. Normalerweise ist es bei den verschiedenen DBMS nicht üblich, die Anzahl der Datensätze der Ergebnismenge zu kennen, bevor man nicht alle Datensätze abgeholt und sie dabei selbst gezählt hat. Die MySQL-Client-API kennt einen Modus, der bereits im Hintergrund alle Datensätze der Ergebnismenge vom Server geholt hat, und hat sie dabei zählen können. Die Fetch-Funktionen, die man selbst aufruft, holen die Datensätze aus diesem Puffer und nicht direkt vom MySQL-Server ab. Da PDO nicht nur für MySQL sondern auch für alle anderen Systeme möglichst mit gleichem Funktionsumfang arbeiten können soll, hat man auf diese Funktionalität verzichtet. Dir bleiben nun drei Möglichkeiten, an die Anzahl zu kommen. Wenn es dir nur um die Anzahl geht, ohne dass du die Daten brauchst, lass sie vom DBMS mittels COUNT(*) zählen. Damit ersparst du dem System das unnötige Im-Hintergrund-Abholen der Daten. Wenn du sowohl Anzahl als auch Daten brauchst, und die Anzahl vor der Verarbeitung der Ergebnismenge benötigst, nutze PDOStatement::fetchAll() und wende dann das herkömmliche count() auf das von fetchAll() gelieferte Array an. Wenn du die Anzahl erst nach der Verarbeitung der Ergebnismenge benötigst, zähle beim Fetchen selbst mit.
echo "$verabschiedung $name";