echo $begrüßung;
Leider findet man sogar im original php.net manual diese Infos so:
http://nl3.php.net/addslashes
An example use of addslashes() is when you're entering data into a database. For example, to insert the name O'reilly into a database, you will need to escape it. Most databases do this with a \ which would mean O'reilly. This would only be to get the data into the database, the extra \ will not be inserted. Having the PHP directive magic_quotes_sybase set to on will mean ' is instead escaped with another '.
Da steht, dass das ein Beispiel für _eine_ Datenbank ist. Es steht nicht dabei, _welches_ System konkret gemeint ist. Es ist leider auch nicht erwähnt, dass jedes DBMS seine eigenen Maskier-Regeln hat.
Mit Prepared Statements ist diese Diskussion allerdings überflüssig, [...]
Das bedeutet also wenn ich folgendes mache:
$dbSelectFromUser = $DBO->prepare("SELECT userid FROM usertab WHERE usr = :user");
$dbSelectFromUser->bindParam(':user', $USER);
$dbSelectFromUser->execute();
dann kann nichts passieren?
Auch wenn $USER eine POST Variable wäre oder aus einem Textfeld kommen würde?
Du scheinst es immer noch nicht verstanden zu haben, wozu das Maskieren dient, und warum es bei Prepared Statements nicht benötigt wird. (Genauer gesagt: bei den Parametern, die per bind…() an ein bereits vorbereitetes Statement gebunden werden. Fügt man Werte direkt in das SQL-Statement ein gelten selbstverständlich die DBMS-spezifischen Regeln zur Notation von Strings.)
Maskieren dient dazu, bestimmte Zeichen mit besonderer Bedeutung so zu kennzeichnen, dass sie in einen bestimmten Kontext, der diesen Zeichen eine besondere Bedeutung zuspricht, ihre besondere Bedeutung verlieren (z.B. String-Begrenzungszeichen). Die gebundenen Daten eines P.S. werden jedoch in einem Kontext transportiert, der keine solchen besonderen Zeichen kennt. Es ist deshalb völlig belanglos, welche Zeichen in den zu transportierenden Daten stehen, weil die Daten nicht nach diesen Zeichen durchsucht werden, um sie beispielsweise an ebenjenen Zeichen aufzutrennen.
Es ist wie mit rohen Eiern. Transportierst du sie in einer dafür speziell entworfenen Verpackung benötigen sie keine weitere Transportsicherung. Nur wenn du sie in einam allgemeinen Kontext transportierst, solltest du sie gut einpacken.
echo "$verabschiedung $name";