Antworten
Eine Datenbankverbindung dauerhaft zu erhalten, macht keinen Sinn, im Gegenteil, das führt eher zu Problemen. Man kann ja nie wissen, ob die Verbindung noch gebraucht wird oder nicht, also würdest Du die Verbindung eventuell unnötig lange aufrecht erhalten. Und dadurch kommen so schöne Fehlermeldungen wie "Too many connections" zustande.
*** Nobody ***
2.
hallo hellmut...
wie wäre es denn wenn du deine datenbankverbindung mit pconnect machst. pconnect öffnet eine persistente Verbindung zur datanbank. bevor das geschieht wird aber geprüft ob beeits eine verbindung besteht und dan nwird die genommen. was für eine datenbank benutzt du denn?
3.
Mit pconnect erzeugt man genau die von mir schon beschriebene Fehlermeldung. Da man selten einen Server für sich alleine hat, sollte man pconnect daher lassen.
*** Nobody ***
4.
hallo nobody...
also ich fahre ganz gut mit pconnect auf einem shared server. habe da keine probleme mit und erzeuge auch keine fehlermeldungen.
5.
mysql 3. ...
gruss und danke
hellmut
6.
Das abspeichern der Connection-ID in einem Datenbankobjekt bringt insofern nichts, als dass diesen Datenbankobjekt ja sowieso nur bis zum Ende des Skripts verfügbar ist. Ein Abspeichern in der Session bringt nichts, da der Serialisierungsprozess für Resourcen-Kennungen nicht funktioniert.
7.
@elvis_presley
Das mag ja sein, aber wenn alle User, die auf dem Server MySQL benutzen, mit pconnect arbeiten würden, dann wird das auch bei Dir passieren. Und da bei heutigen Servern der Connect kaum noch eine Rolle spielt, ist pconnect eigentlich nicht erforderlich.
*** Nobody ***
8.
hallo hellmut...
dann wäre der befehl für dich mysql_pconnect().
Genaue Syntax kannst Du Dir hier anschauen
http://php3.globe.de/manual/de/function.mysql-pconnect.phpOb Du es verwenden willst oder nicht liegt dann ja in deinem Ermessen :).
9.
"*einwändeignorier*" ;)
10.
danke für die info.
wo wir aber gerade dabei sind.... habe da noch ein verständnisproblem.
ich habe meine anwendung objektorientiert entworfen und möchte meine attribute natürlich in instanzen speichern und nicht sonstwo.
dazu versehe ich erzeugte instanzen mit dem keyword global um sie mir dann per 'global' an benötigter stelle zurückzuholen.
allerdings scheint das nur sehr bedingt zu funktionieren.... das objekt scheint es dann einfach nicht mehr zu geben.
grüsse
hellmut
11.
hallo hellmut...
willst du uns damit sagen das du klassen programmiert hast? wie wäre es dann wenn du die variablen als klassenvariablen mit var = $variable; definierst. die hast du dann mit $this->variable (wichtig KEIN $ vor variable) überall in der klasse zur verfügung. von außerhalb der klasse greifst du dann mit $obejct->variable drauf zu. hilft dir das?
12.
genauso mache ich es! nur leider kann ich an bestimmten stellen mit $objekt->variable nicht auf das objekt zugreifen.
Zitat:
von außerhalb der klasse greifst du dann mit $obejct->variable drauf zu.
das objekt muss doch erst global gemacht werden um es an anderer stelle, (ausserhalb der klasse) wieder darauf zugreifen zu können?!
mein probelm sieht in etwa so aus:
Code: In Zwischenablage kopieren (nur IE)
mein hauptproblem ist der zugriff auf ein objekt von irgendwo aus im programm bzw wie erstelle ich, programmiertechnisch am elegantesten ein objekt auf das ich an verschiedenen stellen des php programmes, das aus zahlreichen klassen und php seiten besteht zugreifen kann.
oder kann man objekt über mehrere seiten vielleicht nicht erhalten.
auch instanziiere oder referenziere ich objekte an sehr verschiedenen stellen:
auslesen von attributen in objektmethoden anderer klassen oder in html seiten; erzeugen von objekten in objektmethoden anderer klassen.
so weit erstmal...
gruss
hellmut
13.
Worauf du vielleicht gestoßen bist: Jedes Objekt ist nur bis zum Ende des Skripts gültig. Neues Skript bedeutet: Keine Variablen mehr definiert -> also auch keine Objekte. Einzige Abhilfe: "Sessions".
14.
kann man per schlüsselwort 'global' ein objekt während einer session erhalten?
15.
ich glaub ich habs : man muss ein objekt serialisieren (und natürlich deserialisieren) um es über irgendein globales feld wie $GLOBALS oser $_SESSION in eine andere datei zu übergeben.
gruss
hellmut
16.
aber habe ich nicht mal gelesen dass objekte implizit serialisiert werden wenn man sie in GLOBALS oder SESSION schreibt und beim auslesen wieder deserialisiert werden?
????
17.
bei Sessions ja, die Variable $_GLOBALS solltest Du aber eigentlich gar nicht verwenden, die ist für andere Zwecke da.
18.
ja heisst man muss von hand serialisieren?