Und dann noch Behauptungen "er hat sich was zusammenkopiert".
Ein Satz, der mit "Ich glaube" beginnt, enthält keine Behauptung, sondern stets eine Meinung. Möglicherweise solltest Du Dich damit auseinandersetzen, dass Deine Fragestellung zu dem führt, was ich GLAUBE.
Hier noch mal Deine Frage:
Meine Frage war, wie ich das umgehe, ob es eine Möglichkeit gibt, das aufrecht zu erhalten damit es so problemlos klappt wie CSS oder JS das die ganze Zeit global gilt, ob der "andere" Lösungsweg vorteilhaft ist oder nicht
CSS und JS sind nicht global, sondern vom Useragent geladen und werden beim Parsen beachtet(CSS) oder von einem Interpreter (im UserAgent!) interpretiert. Warum führst Du das auf, wenn es Dir um PHP <-> MySQL geht?
Die erste Frage ist doch schon: Läuft PHP als CGI oder als Modul?
Der Unterschied?
IN EINFACHEN WORTEN:
Wird PHP als CGI betrieben, dann ist die Reihenfolge die:
- Request kommt beim Webserver an
- Webserver stellt fest: Endung ist .php. Da soll ich den PHP-Interpreter starten und der soll das lästige Zeug anschauen. Der Webserver startet den PHP-Interpreter und gibt dem einen Haufen Daten mit auf den Weg.
- Der PHP-Interpreter macht seinen Job, gibt dem Webserver die zu tätigenden Ausgaben zurück und BEENDET sich. Dazu meldet er natürlich alle Verbindungen zur Datenbank (und sonstwohin auch) ab.
- Der Server schaut, ob sich PHP mit dem Status 0 (kein Fehler) verabschiedet hat, ergänzt die Daten um Headerzeilen und sendet den Kram ins Netz.
Wer oder was sollte an dieser Stelle eine Verbindung zum MySQL-Server offenhalten?
Wird PHP als Modul betrieben, dann ist die Reihenfolge die:
- Request kommt beim Webserver an
- Webserver stellt fest: Endung ist .php. Das soll ich dem mit mir gestartetem und auf sowas lauerndem PHP-Modul übergeben.
- Das PHP-Modul macht seinen Job, gibt dem Webserver die zu tätigenden Ausgaben zurück und beendet sich NICHT.
- Der Server ergänzt die Daten um die Header und sendet den Kram ins Netz.
Hier kann also das PHP-Modul, dass dauerhaft läuft, die Verbundung zur Datenbank offen halten.
(In der Realität ist das alles noch komplizierter, weil "der Webserver" ein Vaterprozess ist, der als eigentliche Bearbeiter der Requests einige Kindprozesse erzeugt und diese überwacht. Diese werden auch regelmäßig beendet.)
Wenn also PHP als Modul läuft und Du auch in anderen Hinsichten (besonders mal: Anzahl der offenen Verbindungen zur Datenbank) mit mysql_pconnect leben kannst, dann weiß ich nicht, was Du noch fragst.
Das obige ist Grundlagenwissen. Jedenfalls für jemanden, der in PHP programmiert. Und in dem Fall, dass Du behauptest "Das habe ich doch gewusst!" sage ich schon mal: Deine Fragen lassen diesen Schluss absolut nicht zu.