echo $begrüßung;
Achtung, liebe Leser! Bitte nachfolgend nicht durcheinanderkommen mit den Funktionen der MySQL-API und denen von PHP, die teilweise gleiche oder fast gleiche Namen haben.
Selbstverständlich werden mehrere durch Semikolon getrennte, gebündelte
Anweisungen von MySQL ohne besondere Konfiguration ausgeführt. Das stellt
überhaupt gar kein Problem dar.
Ganz so selbstverständlich ist es nicht. Man muss dazu die MySQL-API-Funktion mysql_real_connect() mit dem Client-Flag CLIENT_MULTI_STATEMENTS aufrufen. PHP verwendet zwar in der mysql-Extension intern auch teilweise mysql_real_connect(), lässt aber dieses Flag aus. Selbst unter der mysqli-Extension, in der es ein mysqli_real_connect() extra zum mysqli_connect() gibt, lässt sich dieses Flag nicht setzen. Nur hier geht PHP einen eigenen Weg mit mysqli_multi_query(), es schaltet bei Verwendung dieser Funktion nachträglich über die MySQL-API-Funktion mysql_set_server_option() mit MYSQL_OPTION_MULTI_STATEMENTS_ON die Ausführung von mehreren Statements ein und danach wieder aus. Extra noch setzt es vor jeder Verwendung von mysqli_query() und mysqli_real_query() explizit MYSQL_OPTION_MULTI_STATEMENTS_OFF. Man ist also auf mysqli_multi_query() angewiesen, wenn man denn unbedingt Multi-Statements verwenden möchte.
Nur mysql_query ist dazu nicht (mehr) in der Lage. Das ist ein PHP-spezifisches
Problem, kein MySQL-Problem. Will man von PHP aus so etwas nutzen, so kann
man die mysqli-Funktionen verwenden: mysqli_multi_query().
Das Flag, um multiple Statemens ausführen zu können, ist erst in MySQL Version 4.1 eingeführt worden. Daraus schlussfolgere ich, dass auch MySQL sich selbst schon früher gegen Multi-Statements gesperrt hat. Leider gibt es keine älteren Versionen mehr im MySQL-Archiv zum Download, so dass ich das nicht mehr in früheren Ausgaben vergleichen kann.
echo "$verabschiedung $name";