echo $begrüßung;
Daher nun meine Frage(n): Ist das wirklich ein Bug von PHP, dass die Typen der einzelnen Tabellenspalten nicht korrekt übergeben werden, oder mache ich irgendetwas falsch?
Nicht für jeden MySQL-Spaltentyp gibt es Pendant in PHP und umgekehrt. Alles was von MySQL zurückkommt bekommt den PHP-Typ String. (Eine Ausnahme sind NULL-Ergebnisse, die ebenfalls als PHP-Typ NULL ergeben.) Normalerweise stellt das kein Problem dar, weil PHP eine automatische Typumwandlung vornimmt, wenn es erforderlich ist. Man darf es ihm nur nicht untersagen, indem man einen typberücksichtigenden Vergleichsoperator === verwendet.
Würdet ihr in so einem Fall einfach auf das === verzichten und nur == nehmen (dann funktioniert es ja anscheinend wieder)?
Ja. Solange es keinen zwingenden Grund gibt, im weiteren Programmverlauf einen Integer zu verwenden, würde ich es als String belassen.
echo "$verabschiedung $name";