echo $begrüßung;
Wann wird bei MySQL ein Leerstring ankommen und wann NULL?
Ausgehend vom Quelltext des OPs
$sql="INSERT INTO online (data1,data2)";
$sql.="VALUES('$data1','$data2')";
wird bei ihm immer ein Leerstring in der Datenbank landen, wenn seine Variablen einen Leerstring enthalten, vom PHP-Typ NULL (PHP-NULL != Datenbank-NULL) sind oder nicht gesetzt sind. Du siehst Stringbegrenzungszeichen um $data1 und $data2?
Ein Datenbank-NULL landet nur dann in der Datenbank wenn man in einen SQL-Befehl (INSERT, UPDATE) das SQL-Schlüsselwort NULL verwendet oder wenn durch Ausnutzen eines Default-Wert-Mechanismus ein als NULL definierter Default-Wert beim Datensatz-Anlegen eingetragen wird.
Ist ein Leerstring das gleiche, wie ' '?
Nein. Allgemein üblich spricht man von einem Leerstring, wenn man einen String hat, der keine Zeichen enthält, auch keine Leerzeichen.
Was macht die PHP-Text-Schnittstelle von MySQL daraus,
Mir ist nicht bekannt, dass MySQL eine PHP-Schnittstelle hat.
und was macht das DBMS später daraus?
Woraus genau und wie definierst du "später"?
echo "$verabschiedung $name";