Mailinglisten-Archive |
Aloha, > Von: Thomas Beckmann[SMTP:beckmann_(at)_gis.de] >=20 > >> Ich begreife nicht, wieso sich das MySQL-hdl nicht vern=FCnftig im > >> Objekt speichern l=E4=DFt. > > > >Soweit ich weiss werden normale Datenbankverbindungen nach = beendigung > eines=20 > >Skripts automatisch geschlossen (sollte man aber trotzdem lieber per = hand >=20 > >machen). Wie das bei persistenten Datenbankverbindungen ist weiss = ich > nicht,=20 > >aber wahrscheinlich wird das Handle ung=FCltig. >=20 > Michael, laut Handbuch ist's bei pconnect eben nicht so, da=DF die > Verbindung geschlossen wird=20 >=20 Wird sie auch nicht. Der im Webserver geladene PHP Interpreter (Das mit = den persistenten DB-Verbindungen funktioniert NUR, wenn PHP als Modul l=E4uft!) h=E4lt = f=FCr dich die Verbindung zur Datenbank aufrecht. Beim n=E4chsten Aufruf von X_pconnect schaut der Interpreter, ob er = schon eine Verbindung zu einer Datenbank hat, bei der (hostname,db-name, user, pass) = identisch sind. Wenn ja (und Verbindung noch intakt) bekommst du diese zur=FCck , ansonsten = wird eine neue gemacht. F=FCr diese Verbindung bekommst du eine Ressorce-ID, mit der du in deim = Script wunderbar arbeiten kannst, aber nicht dar=FCber hinaus (Stell dir vor der = Webserver wird durchgestartet, oder der apache-Prozess beendet sich alle X requests, dann ist halt gar keine Verbindung da, obwohl du mal eine Ressource ID hattest...) > ... allerdings scheint's so zu sein, wie > Mario schrieb: Der resource-id l=E4=DFt sich nicht speichern, aber = dennoch > wird nach dem n=E4chsten pconnect wieder derselbe handle = zur=FCckgegeben - >=20 Das ist Zufall, ob der gleiche Handle zur=FCckgegeben wird. > allerdings muss dann auch der db-select neu gemacht werden. >=20 Genau. Wenn du wenige Werte aus dem select hast, kannst du diese in der Session ablegen. Wenn die Ergebnismenge gro=DF ist, ist es geschickter nochmals = die Datenbank zu befragen. Letzteres kostet gar nicht so viel wenn die Verbindung persistent ist und die Datenbank =FCber ein ausgereiftes Caching verf=FCgt (der Daten, = Indexe, geparste SQL-Statements...) > Bin dabei, mich damit abzufinden ... >=20 Eigentlich solltest du es jetzt verstanden haben und dich nicht damit abfinden m=FCssen ;) Viele Gr=FC=DFe, Mathias
php::bar PHP Wiki - Listenarchive