Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbankverbindung in eine Funktion packen?? --> Geht da

Einklappen

Neue Werbung 2019

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

  • Datenbankverbindung in eine Funktion packen?? --> Geht da

    Hallo,

    Ich habe hier in meinem Projekt das Problem, dass ich viele verschiedene Datenbankverbindungen herstellen muss.

    Nun würde ich die Datenbankverbindung gerne in eine Funktion packen, damit ich das ganze ein wenig komfortabler gestalten kann.

    Nur, wenn ich einfach mysql_connect und select_db in eine Funktion packe, dann hagelt es Fehlermeldungen.

    Kann mir einer sagen, ob das überhaupt geht, wenn ja, wie??


  • #2
    code zeigen wie du vorgegangen bist, Fehlermeldungen?! zeig sie

    ansonsten einfach verschiedene includes?!
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      // inc.dbconnect.php
      PHP-Code:
      <?php
      define
      ('MYSQL_HOST''localhost');
      define('MYSQL_USER''user'); 
      define('MYSQL_PW''passwort');
      define('MYSQL_DB''mydatabase');

      function 
      dbConnect()
      {
          
      mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PW) or die("Konnte Verbindung zur Datenbank nicht herstellen:
      "
      .mysql_error());
          
      mysql_select_db(MYSQL_DB) or die("Konnte Datenbank nicht auswählen:
      "
      .mysql_error());
      }
      ?>
      Das ganze per require_once() einbinden und dbConnect() einfach aufrufen.
      Wenn du ganz clever & faul bist, lässt du die Funktion weg, lässt also direkt beim require_once() das mysql_connect() und mysql_select_db() ausführen.

      Kommentar


      • #4
        Den Code mit der Funktion drin hab ich nicht mehr, weil ich es nur kurz getestet habe, aber dann wieder gelöscht habe, weil es nicht funktioniert hat *schäm*

        Den restlichen Code, zeige ich natürlich gerne.
        Es ist eine ganz einfache Seite, die eine Verbindung zu zwei verschiedenen Datenbanken herstellt, um das ganze zu testen.

        PHP-Code:
        <?php

          
        // Verbindungsherstellung zur Forendatenbank um spaeter die Usernamen der Helfer
          // ausgeben zu koennen
          
        $usernamen = @mysql_connect("localhost","*********","*********")
            or die(
        "Verbindung zu MySQL gescheitert!");
          @
        mysql_select_db("****_phpbb",$usernamen)
            or die(
        "Datenbankzugriff gescheitert!");
          
        $sql "SELECT username FROM *******_users";
          
          
        $query mysql_query($sql,$usernamen);
          
          
        // Ende der Verbindungsherstellung zur Forendatenbank
          
          // Verbindungsherstellung zur MMOG Datenbank um spaeter die News ausgeben zu koennen
          
        $news = @mysql_connect("localhost","********","**********")
            or die(
        "Verbindung zu MySQL gescheitert");
          @
        mysql_select_db("********_mmog",$news)
            or die(
        "Datenbankzugriff gescheitert");
            
          
        $sql_2 "SELECT id, titel, text, datum FROM News ORDER BY id DESC";
          
          
        $query_2 mysql_query($sql_2,$news);
          
          
        // Ende der Verbindungsherstellung zur Newsdatenbank
          
          
        echo "<html>\n";
          echo 
        "\t<head>\n";
          echo 
        "\t<head>\n";
          echo 
        "\t<body bgcolor=\"#FFA200\">\n";
          echo 
        "\t\t<h3>News</h3>\n";
          
          
        // Ausgabe der aktuellen News
          
        while ($row2=mysql_fetch_assoc($query_2))
          {
            echo 
        "<div style=\"width: 600px; border-style: solid; border-width: 1px; background-color: #FCB455; padding: 10px;\">\n";
            echo 
        "<font size=\"4\">" $row2["titel"] . "</font>
        <hr style=\"height: 1px; background-color: black; border: 1px;\">\n"
        ;
            echo 
        $row2["text"] . "
        <hr style=\"height: 1px; background-color: black; border: 1px;\">\n"
        ;
            echo 
        $row2["datum"] . "\n";
            echo 
        "</div>
        \n"
        ;
          }
          
        // Ende der Ausgabe der News
          
        echo "\t\t
        \n"
        ;
          echo 
        "\t\tFolgende Personen arbeiten bereits mit:

        \n"
        ;
          
        // Ausgabe der Usernamen aus der Forendatenbank
          
        while ($row=mysql_fetch_assoc($query))
          {
            if (
        $row["username"] != "Anonymous")
            {
              echo 
        "\t\t- $row[username] 
        \n"
        ;
            }
          }
          
        // Ende der Ausgabe der Usernamen
          
        echo "\t<body>\n";
          echo 
        "</html>";
          
        mysql_close($usernamen);
          
        mysql_close($news);
        ?>
        So, die beiden Datenbank abfragen wollte ich eigentlich in eine universelle Funktion schreiben.

        Wenn ihr mir helfen könnt, dann DAAAAANNNKEEE!

        Kommentar


        • #5
          Zitat von Zergling
          // inc.dbconnect.php
          PHP-Code:
          <?php
          define
          ('MYSQL_HOST''localhost');
          define('MYSQL_USER''user'); 
          define('MYSQL_PW''passwort');
          define('MYSQL_DB''mydatabase');

          function 
          dbConnect()
          {
              
          mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PW) or die("Konnte Verbindung zur Datenbank nicht herstellen:
          "
          .mysql_error());
              
          mysql_select_db(MYSQL_DB) or die("Konnte Datenbank nicht auswählen:
          "
          .mysql_error());
          }
          ?>
          Das ganze per require_once() einbinden und dbConnect() einfach aufrufen.
          Wenn du ganz clever & faul bist, lässt du die Funktion weg, lässt also direkt beim require_once() das mysql_connect() und mysql_select_db() ausführen.
          Das ist natürlich eine Idee

          Vielleicht kannst du mir noch zeigen, wie ich sie in meinem Post über diesem anwenden kann

          DANKE

          Kommentar


          • #6
            Bastel dir ne Klasse, die zwischen den Datenbanken switcht, ein Neuaufbau der Verbindung scheint hier garnicht nötig.

            PHP-Code:
            <?php
            // class.DB.php
            define('MYSQL_HOST''localhost');
            define('MYSQL_USER''user'); 
            define('MYSQL_PW''passwort');
            define('MYSQL_DEFAULT_DB''mydatabase'); 


            class 
            DB
            {
              var 
            $_connect;
              var 
            $_db;

              function 
            connect($host MYSQL_HOST$user MYSQL_USER$pw MYSQL_PW)
              {
                 if (
            $this->_connect mysql_connect($host$user$pw)) {
                   die(
            mysql_error());
                 }
              }

              function 
            selectDB($db MYSQL_DEFAULT_DB)
              {
                 if (
            $this->_connect && $this->_db != $db) {
                   if (
            $this->_db mysql_select_db($db)) {
                     die(
            mysql_error());
                   }
                 }
              }
            }


            // Aufruf:
            require_once 'class.DB.php';
            DB::connect();
            DB::selectDB('news_mmog');
            // news relevante db queries
            DB::selectDB('board_phpBB');
            // foren relevante db queries
            ?>
            -- ungetestet

            Oder benutz am Besten gleich PEAR:B
            http://pear.php.net

            Kommentar


            • #7
              Oh...

              Mit Klassen hab ich noch nie gearbeitet.

              Gibts da ein gutes Tutorial dazu?

              Kommentar


              • #8
                schau mal hier vorbei:
                http://www.professionelle-softwareen...erste_auflage/

                abschnitt:
                I. Objektorientierte Programmierung.
                Wie man Fragen richtig stellt

                Kommentar

                Lädt...
                X