echo $begrüßung;
fetchColumn(0) holt doch die erste Spalte der nächsten Zeile.
Warum machst du hinten noch die Zuweisung ->fetchColumn(0)?
Würde es nicht auch so gehen?
if($DBO->query("SELECT count(*) FROM departments WHERE dep_name = '$d_name' ") ){
Nein. Ein SELECT count(*) (ohne GROUP BY) liefert immer eine einzeilige Ergebnismenge. Das Ergebnis von ->query() sagt ja nur aus, dass die Abfrage erfolgreich war. Selbst wenn ein SELECT eine leere Ergebnismenge liefert war das eine erfolgreiche Abfrage. Erst beim Fetch stellt sich heraus, dass keine Daten vorliegen. Das fetchColumn(0) liefert die von count(*) ermittelte Summe. Das ist entweder 0 oder ein größerer Wert.
echo "$verabschiedung $name";