echo $begrüßung;
mysql_query('SET NAMES 'utf8'');
Das funktionierte wunderbar auf meiner Entwicklungsumgebung. Auf dem Liveserver läuft allerdings eine ältere MySQL, was das Problem zu sein scheint. Ich bekomme eine Fehlermeldung:
"Unknown system variable 'NAMES'"
Das wird ein System kleiner als Version 4.1 sein. Diese Versionen können nicht mit UTF-8 umgehen. Man kann problemlos UTF-8-kodierte Daten hinsenden und wieder zurückbekommen, aber eine serverseitige String-Verarbeitung (inklusive Vergleich) wird nicht richtig funktionieren. Das SET NAMES-Statement gehört zum stark verbesserten Zeichensatz-Konzept, das ab Version 4.1 vorhanden ist.
Es ist immer eine gute Idee, die Entwicklungsumgebung an das Produktivsystem anzupassen, um hinterher nicht feststellen zu müssen, dass bestimmte Funktionalitäten auf dem letzterem nicht vorhanden sind oder anders funktionieren.
Eine Möglichkeit mit solch gravierend unterschiedlichen Versionsständen zu arbeiten, ist, die Datenbankschicht mit versionsabhängigen "Treibern" zu versehen.
echo "$verabschiedung $name";