Pear::db

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Pear::db

    Ich hab folgendes Problem :

    In meinen PHP-Skripten benutze ich DB-Klassen aus dem PEAR Package.
    Das klappt auch alles wunderbar.
    Nun möchte ich ganz gerne das erzeugte DB-Objekt in des Session
    zwischen speichern, damit ich später einfacher darauf zurgreifen kann :
    Folgendes habe ich gemacht :

    //$vDns = "oci8://userass@net8";
    $vDns = "mysql://userass@server";
    $vDB = DB::connect($vDns);//neues Verbindungsobjekt
    $_SESSION["db"]=$vDB;//objekt in session

    Jetzt kann ich auch prima daruaf zugreifen.
    Wenn das Skript allerdings zu ende gelaufen ist, passiert irgendwas
    mit dem Objekt, so dass es beim nächsten Skriptaufruf nicht mehr in
    der SESSION verfügbar bzw. nur noch "halb" verfügbar ist.

    Ich habs auch mal so probiert :
    $_SESSION["db"]=serialize($vDB);
    ...
    und beim nächsten Aufruf
    $vDB = unserialize($_SESSION["db"]);

    Brachte aber nichts. Hat jemand von Euch einen guten Tipp für mich?
    Achja...könnte vielleicht wichtig sein :
    PHP : 5.0.3 (läuft als Modul)
    MySQL : 4.1.10
    OS : Win2k Prof.
    Server : Apache 1.3

    Ich bin für jeden Vorschlag dankbar

    Danke und GRuss

  • #3
    Kannst du mir erklären wieso du die DB Verbindung per Session weitergeben willst?

    Außerdem solltest du PHP Code immer mit dem PHP - Tag posten
    PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

    Comment


    • #4
      Original geschrieben von Floriam
      Kannst du mir erklären wieso du die DB Verbindung per Session weitergeben willst?

      Ganz einfach...damit ich nicht bei jedem request wieder neu die
      Verbindung zur datenbank herstellen muss.

      Außerdem solltest du PHP Code immer mit dem PHP - Tag posten
      Werd ich mir fürs nächste mal merken...

      Comment


      • #5
        Original geschrieben von zyrano
        Ganz einfach...damit ich nicht bei jedem request wieder neu die
        Verbindung zur datenbank herstellen muss.
        mysql_close tut kund:
        Using mysql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.
        Du könntest höchstens dafür sorgen, dass du mittels __sleep und __wakeup die verbindung automatisch wieder aufbaust...
        Ich denke, also bin ich. - Einige sind trotzdem...

        Comment


        • #6
          Wenn ich das nun richtig verstanden habe, habe ich keine Möglichkeit die Verbindung mittels >>SESSION << offen zu halten.

          Comment


          • #7
            es ergibt ja auch keinen logischen sinn.
            beide scripte sind unabhaengig voneinander.
            waere ja so als ob du von einem zug in den anschlusszug steigst aber den motor mitnehmen musst, damit er fahren kann.
            btw: pear::db ist in 90% aller faelle vollkommen ueberladen. als einfache abstraktionsschicht imho nicht zu gebrauchen - da schreibt man sich schneller einen eigenen layer. pear::db hat nach dem instanzieren knapp 800kb ram usage - mein kleiner layer nur etwa 40kb ... wenn die website hoeher frequentiert wird wuerde ich das beachten!
            1101100 1101001 1100110 1100101 1101001 1110011 1100001 1100010 1101001 1110100 1100011 1101000

            /(bb|[^b]{2})/

            Comment


            • #8
              Original geschrieben von loci
              es ergibt ja auch keinen logischen sinn.
              beide scripte sind unabhaengig voneinander.
              waere ja so als ob du von einem zug in den anschlusszug steigst aber den motor mitnehmen musst, damit er fahren kann.
              btw: pear::db ist in 90% aller faelle vollkommen ueberladen. als einfache abstraktionsschicht imho nicht zu gebrauchen - da schreibt man sich schneller einen eigenen layer. pear::db hat nach dem instanzieren knapp 800kb ram usage - mein kleiner layer nur etwa 40kb ... wenn die website hoeher frequentiert wird wuerde ich das beachten!

              der logische sinn der da hinter steckt ist einfach : ich spare mir die
              zeit zum erneuten verbinden. Um Dein Beispiel mit den Zug
              aufzugreifen: wenn ich in einen anderen zug steige und den motor
              mitnehme der schon läuft, spare ich mir die zeit, den motor im
              anderen zug neu zu starten

              ich persönlich bin auch kein wirklicher freund von der klasse, aber die
              entscheidung diese zu nutzen, wurde an einer anderen stelle
              getroffen.

              Comment


              • #9
                zeit die woanders draufgehen würde ..

                ausbauen vom zug ( __sleep() )
                und im anschlusszug einbauen ( __wakeup() )
                mfg,
                [color=#0080c0]Coragon[/color]

                Comment

                Working...
                X