echo $begrüßung;
Wenn jemand eine Nachricht so schreibt:
Da ist'n Fehler
bekomme ich einen Fehler, wenn ich es versuche in die Datenbank einzufügen. Ist auch klar: wegen '
Die Lösung heißt: kontextgerechtes Behandeln der Werte. Alles andere ist nicht der richtige Weg. HTML-Entitys und andere Ersatzdarstellungen haben als Problemlösungsversuch in einer Datenbank nichts zu suchen. Das ersetzt nur das eine Problem durch ein anderes, weil nun keine Stringfunktionen des DBMS mehr ordentlich angewendet werden können.
Wenn du einen Wert in einen String-Kontext eines SQL-Statements bringst, gibt es Regeln, wie bestimmte Zeichen zu notieren sind. Das ist je nach DBMS unterschiedlich. Meist gibt es aber eine Funktion, die sich um die korrekte Behandlung kümmert. Unter MySQL ist das beispielsweise mysql_real_escape_string():
$sql = sprintf("INSERT INTO tabelle (feld1, feld2) VALUES ('%s', '%s')",
mysql_real_escape_string($feld_wert_1),
mysql_real_escape_string($feld_wert_2));
if (!($result = mysql_query($sql)))
// Fehlerbehandlung
echo "$verabschiedung $name";