dedlfix: db verbindung in session ablegen

Beitrag lesen

echo $begrüßung;

Ich hätt mir überlegt das Ergebnis von pg_connect in $_SESSION abzulegen, da es den Vorteil hätte sich in nur einem Skript um die Anmeldung bei der DB kümmern zu müssen

Die Dinge hinter einer Ressourcenkennung sind etwas komplexer als es auf den ersten Blick aussieht. Die Kennung allein nützt dir nichts. Am Script-Ende werden alle benutzten Ressourcen wieder freigegeben. Die Ressourcenkennung würde dann ins Leere zeigen.

jedoch stellen sich (auf Grund meines fehlenden Hintergrundwissens über PHP) folgende Fragen:

  • wird die Verbindung nach Ende des Skripts beendet? (was imho ja der Fall sein müsste, da man die Verbindung selbst nie schließen muss)

Ja.

  • kann ich resource links überhaupt in $_SESSION ablegen? serialize() kann damit ja nicht umgehen

Selbst wenn, es wäre nicht sinnvoll. Allerdings kann man bei Objekten mit etwas Magie so tun, als ob die Verbindung weiterbesteht, indem man beim "Aufwecken" sie einfach wieder herstellen lässt.

  • wie sieht es aus wenn die Sitzung ausläuft? In PHP gibt es ja afaik keine möglichkeit bei bestimmten Ereignissen (wie Session/Applikation Begin/Ende - wie in z.B. ASP.NET) Code ausführen zu lassen.

Das zu klären ist für die Ressourcenkennung irrelevant. Sie überlebt ein Abspeichern in einer Session sowieso nicht in wiederverwendbarer Weise.

Gibt es weitere Vorschläge was ich machen könnte um nicht in jedem Skript immer wieder zur DB verbinden zu müssen? (damit ist nicht pg_pconnect gemeint!)

Persistente Verbindungen sind sowieso nicht ganz ohne. Siehe </archiv/2006/10/t138996/#m903139>. Ansonsten Objekte und oben erwähnte Magie bzw. https://forum.selfhtml.org/?t=152865&m=994477.

echo "$verabschiedung $name";