DB Connection

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DB Connection

    Servus!!

    Einfrage, wie kann ich überprüfen, ob eine Verbindung zur Datenbank besteht? Arbeite mit Temporären Tabellen und somit das Problem, das ich während ein Benutzer meines Warenkorbs auf der Seite ist immer ein und die selbe Connection haben muss, da ansonsten die temporäre Tabelle gelöscht wird. Kann ich dies so überprüfen und ist die auch sauber "Programmier" ?

    if(!isset($conn))
    {
    global $conn;
    $conn=mysql_connect($server,$user,$pwd);
    if(!$conn) die ("Fehler im Verbindungsaufbau zur Datenbank $db " . mysql_error());
    mysql_select_db($db,$conn) or die ("Keine Verbindung zur Datenbank $db " . mysql_error());
    }

    Ich habe mehrer Seiten die eine Verbindung zur Datenbank brauche. Ist es dann nicht sinnvoll einmal am Anfang (auf der startseite) die DB zu Connecten und die Verbindung bestehen zu lassen? Die Verbindung wird ja beim Wechsel der URL ja sowieso getennt und wenn ständig Daten im Austauch mit Tabellen sind ist es doch unnötig ständig zu Verbinden und zu schließen,oder?

    Schonmal Danke

    Ciao Goose
    Goose
    "Dem die Geduld genommen wurde" - Dank Netscape

  • #2
    Hi,
    du überprüfst doch hiermit if(!$conn) ob der Connect zur DB geklappt hat.
    Eine Dauerhafte Verbindung zur DB würde ich nicht empfehlen, da dies sehr zu lasten des Servers geht.
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      ??

      Und wie überprüfe ich, ob ich gerade mit der DB verbunden bin??
      Wenn ich $conn in einer Session speicher, dann kann ich doch über
      isset($_SESSION[conn]) überprüfen, ob eine Verbindung besteht. Das Problem ist nur wie ich die Session kille, wenn der Benutzer die Seite verlässt?

      Ciao Goose
      Goose
      "Dem die Geduld genommen wurde" - Dank Netscape

      Kommentar


      • #4
        ähm, sicher dass du eine DB-Connection in der Session registrieren kannst?

        Kommentar


        • #5
          Du hast ja die Variable $conn dem MySQL Connect zugewiesen. Dies musst du ja in jeder Datei die du startes machen. Dann hast du ja auch automatisch immer den wert in der Variable stehen ob der Verbindungsaufbau geklappt hat oder nicht.
          Eine Session killt man mit Session_destroy()
          mfg
          Günni


          Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
          Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
          Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
          City-Tiger - Online durch die Straßen tigern...

          Kommentar


          • #6
            versteh noch nicht so ganz, worauf ihr hinauswollt.

            fakt ist: wenn du am anfang der seite connectest, und ein zweites mal versuchst zu connecten (natürlich sind beide aufrufe die selben), wird das zweite mal einfach ignoriert und die erste verbindung genutzt. am ende der seite wird automatisch geclosed. also auf der nächsten Seite erneut aufrufen.

            ansonsten ist mysql-pconnect() vielleicht was für dich...

            Kommentar


            • #7
              !!!!

              Ich glaube ihr versteht mein Problem nicht ganz!!
              Das man eine Session mit session_destroy(); killed weis ich ja, nur wie mache ich dies so , das es genau dann passiert, wenn der User die Seite verläßt. onUnload() gibt es doch bei PHP nicht!?

              Aber ich kann doch anhand der Variable $conn, die ich in einer session speicher, erkennen ob eine Verbindung zur DB besteht oder nicht? Nur wie sieht die Überprüfung aus. es kann ja sein das die Verbindung nach ein paar minuten durch irgendeine Störung unterbrochen wurde und der User sich nicht mehr verbinden lassen kann, weil in der Session steht, das die Verbindung doch geklappt hat!!

              Vielleicht wurde mein Problem jetzt deutlicher.

              Trotzdem DANKE!!!

              Ciao Goose
              Goose
              "Dem die Geduld genommen wurde" - Dank Netscape

              Kommentar


              • #8
                Wenn die Verbindung unterbrochen wird, merkt dies der User schon
                Die Session wird automatisch nach einer gewissen Zeit sowieso gelöscht. Für was willst du die erkennung speichern???
                Wenn du sowieso jedesmal einen neuen Connect machen musst, dann kannst du dies ja auch jedesmal überprüfen, ob der Verbindungsaufbau geklappt hat oder nicht. Und wenn er nicht geklappt hat, dann gib ne Fehlermeldung aus.
                mfg
                Günni


                Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                City-Tiger - Online durch die Straßen tigern...

                Kommentar


                • #9
                  hä? warum willst du ne session löschen? die ist sowieso weg, wenn der user weg ist. und wird auch kurz danach vom server gelöscht.

                  Und wofür speicherst du die Resourceid in die session?

                  Kommentar


                  • #10
                    Anmerkung: Gegenwärtig ist es nicht möglich, Ressourcen-Variablen in einer Session zu registrieren. Zum Beispiel können Sie nicht erwarten, dass die als Session-Variable gespeicherte Verbindungs-Kennung der zu einer Datenbank aufgebauten Verbindung bei der nächsten Wiederherstellung der Session noch gültig ist.
                    ...
                    ich glaube, mysql_pconnect ist da das richtige.
                    dann bekommst du deine alte verbindung wieder(falls sie noch existiert), oder halt ne neue.
                    eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

                    Kommentar

                    Lädt...
                    X