echo $begrüßung;
Jede einzelne Funktion erstellt nun dabei eine eigene Verbindung zur Datenbank und trennt diese nach ausführen der Funktion wieder.
Ist das effizient? Ich habe das Gefühl, dass man das auch ressourcensparender durchführen könnte...
Natürlich nicht und ja.
Ach ja: Ich benutze MySQL 5.
Die MySQL-Version ist hier egal. Das Prinzip ist bei jeder Datenbank und Version gleich. Interessanter wäre die PHP-Version, denn hier gibt es Unterschiede was die Möglichkeiten der OOP angehen.
Aber muss ich dann die Verbindungsvariable mit "global" in jede Funktion hohlen und am Ende einfach die Verbindung trennen?
Es gibt programmiertechnische Muster, die dir helfen können, das Problem zu lösen. Beispielsweise das Singleton-Muster. Normalerweise wird es angewendet, wenn es nur genau eine Instanz einer Klasse geben darf. Aber auch für eine Datenbankverbindung kann man es verwenden.
Möchte man eine Verbindung haben, ruft man eine Funktion auf (z.B. getConnection genannt). Diese sorgt dafür, dass die schon bestehende Verbindung zurückgegeben wird. Gibt es noch keine, wird zuvor eine neue erzeugt und intern gemerkt.
Für PHP4 kann man eine Variable als static deklarieren, die mit null initialisiert wird und später die Verbindung zugewiesen bekommt. Unter PHP5 kann man eine statische Klassenvariable für den Zweck verwenden. Beide Vorgehensweisen haben den Vorteil, dass man keine globale Variable rumliegen hat.
Um die Beendigung der Verbindung musst du dich im Allgemeinen nicht kümmern, das passiert am Scriptende automatisch.
Ich hab mich schon mit dem Schlagwort persistente Datenbankverbindung auseinandergesetzt, aber irgendwie habe ich das Gefühl hier auch am falschen Dampfer zu sein.
Man kann Verbindungen auch nach Scriptende offen halten (Stichwort mysql_pconnect()), aber dazu braucht man PHP als Apache-Modul und ... diese Antwort von Sven Rautenberg.
echo "$verabschiedung $name";