Klassenmethoden nicht beim ersten Mal in einer Session nutzbar
Markus Schmidt
- php
Ich hab eine Klasse verbindung, diese stellt die Verbindung zu einer Datenbank her. Wenn die Seite zum ersten Mal aufgerufen wird, wird eine SESSION-Variable connection angelegt. Der Konstruktur lässt sich zwar nutzen, wenn ich aber auf Funktionen zugreifen will, kommt die Meldung "call to a member function on a non object". Beim ersten Aufruf nutze ich die Funktionen zwar über verbindung::funktionsname(), also ohne ein Objekt. Beim ersten Aufruf erfolgt nur eine Verbindungsüberprüfung, also ich brauche kein Objekt. Ist das nun ein allgemeines Problem?
Mein System:
IIS 5.0
Windows2000-Server
MSSQL-Server 7.0
In der PHP.ini:
auto_start der Session auf 0, da ich sonst die Klasse nicht definieren kann.
register_globals on
Sonst Standardeinstellungen
Hallo Markus,
Um es kurz und schmerzlos zu machen: Du kannst weder Objekte noch Resourcen (wozu u.a. die Datentypen, die von den Datenbankverbindungsfunktion zurückgegeben werden) in Sessions speichern. Letztere überhaupt nicht und erstere werden nicht korrekt serialisiert. Du musst wohl oder übel die Verbindung jedes Mal neu aufbauen.
Da Du MS SQL verwendest, solltest Du Dir mal die Funktion mssql_pconnect anschauen: http://www.php3.de/manual/de/function.mssql-pconnect.php.
Grüße,
Christian
Hallo Christian!
Um es kurz und schmerzlos zu machen: Du kannst weder Objekte noch Resourcen (wozu u.a. die Datentypen, die von den Datenbankverbindungsfunktion zurückgegeben werden) in Sessions speichern. Letztere überhaupt nicht und erstere werden nicht korrekt serialisiert. Du musst wohl oder übel die Verbindung jedes Mal neu aufbauen.
sicher? Siehe:
28.14. Wie speichere ich Objekte in Sessions?
http://www.dclp-faq.de/q/q-sessions-objekte.html
bei Recourcen habe ich keine Ahnung.
Grüße
Andreas