Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Datenbankverbindung und Verwaltungsmethoden objektorientiert

  1. #1
    HTML Newbie
    Registriert seit
    11.07.2008
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Datenbankverbindung und Verwaltungsmethoden objektorientiert

    Sprache: PHP , SQL

    Problem:
    Ich versuche seit längerer Zeit Verwaltungsmethoden für MySQL-Abfragen, Updates usw. zu realisieren. Da keine Ausgabe erfolgt ist
    meine Methode sicherlich falsch. Ich habe die Methoden deklariert in der Klasse z.B. in folgender Struktur:

    Code:
    public function query_assoc( $sql )
    {
      mysql_fetch_assoc(mysql_query($sql));
    }
    Dies funktioniert aber nicht, da keine Ausgabe erfolgt. (Der SQL-Befehl im Anwendungsprogramm ist einwandfrei.)
    Nun, früher wurde mir schonmal gesagt, dass man so ein Problem mit Hilfe einer zweiten Klasse lösen kann. Nun wollte ich
    fragen wie ich das realisieren kann, da ich noch nicht so der Profi bin.

    Wäre dankbar für jede Hilfe[/code]
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    ich denke du willst eher das hier:
    Code:
    public function query_assoc( $sql )
    { return mysql_fetch_assoc(mysql_query($sql));
    }
    Something big is coming. And there will be pirates and ninjas and unicorns...

  3. #3
    Bandit
    Gast

    Standard

    Ist zwar noch nicht an PHP5-OOP angepasst, aber vielleicht hilft dir das weiter:
    Code:
    <?
       /********************************************************************
       *
       * File&#58;              class.mysql.php
       *
       * Kurzbeschreibung&#58;  Eine Klasse zum MySQL-Handling
       *
       * Erstellungsdatum&#58;  17.01.2004
       *
       * Letzte Änderung&#58;
       *   ********************************************************************/
    
       class CDb
       &#123;
         var $connection;
         //---------------------------------------------------------------
         function Db&#40;&#41;
         &#123;
            $this->connection = 0;
         &#125;
         //---------------------------------------------------------------
         function connect&#40;$hostName, $userName, $pw&#41;
         &#123;
           $this->connection = @mysql_connect&#40;$hostName, $userName, $pw&#41;;
    
           return $this->connection;
         &#125;
         //---------------------------------------------------------------
         function connect_db&#40;$hostName, $userName, $pw, $db_name&#41;
         &#123;
           $this->connection = @mysql_connect&#40;$hostName, $userName, $pw&#41;;
    
           if &#40;$this->connection&#41;
           &#123;
              $value = mysql_select_db&#40;$db_name, $this->connection&#41;;
              if &#40;$value == false&#41;
              &#123;
                 db_close&#40;$this->connection&#41;;
                 $this->connection = 0;
              &#125;
           &#125;
           return $this->connection;
         &#125;
         //---------------------------------------------------------------
         function db_close&#40;&#41;
         &#123;
            if &#40;$this->connection&#41;
            &#123;
               mysql_close&#40;$this->connection&#41;;
               $this->connection = 0;
            &#125;
         &#125;
         //---------------------------------------------------------------
         function select_db&#40;$dbName&#41;
         &#123;
            $result = false;
    
            if &#40;$this->connection&#41;
               $result = mysql_select_db&#40;$dbName, $this->connection&#41;;
    
            return $result;
         &#125;
         //---------------------------------------------------------------
         function query&#40;$query=""&#41;
         &#123;
            $result = false;
    
            if &#40;strlen &#40;$query&#41; && $this->connection&#41;
                 $result = @mysql_query &#40;$query&#41;;
    
            return $result;
         &#125;
         //---------------------------------------------------------------
         function num_fields&#40;$value=0&#41;
         &#123;
            $result = 0;
    
            if &#40;$this->connection && $value&#41;
               $result = @mysql_num_fields &#40;$value&#41;;
    
             return $result;
         &#125;
         //---------------------------------------------------------------
         function num_rows&#40;$value&#41;
         &#123;
            $result = 0;
    
            if &#40;$this->connection && $value&#41;
               $result = @mysql_num_rows &#40;$value&#41;;
    
             return $result;
         &#125;
         //---------------------------------------------------------------
         function has_error&#40;&#41;
         &#123;
           $result = true;
    
           if &#40;$this->connection&#41;
             $result = @mysql_errno&#40;&#41;;
    
           return $result;
         &#125;
         //---------------------------------------------------------------
         function error_text&#40;&#41;
         &#123;
           $result = false;
    
           if &#40;$this->connection&#41;
             $result = @mysql_error&#40;&#41;;
    
           return $result;
         &#125;
         //---------------------------------------------------------------
         function data_seek&#40;$value=0, $position=-1&#41;
         &#123;
           $result = false;
      
           if &#40;$value && $position >= 0 && $this->connection&#41;
             $result = mysql_data_seek&#40;$value, $position&#41;;
    
           return $result;
         &#125;
         //---------------------------------------------------------------
         function fetch_array&#40;$value=0&#41;
         &#123;
           $result = false;
    
           if &#40;$value && $this->connection&#41;
             $result =  @mysql_fetch_array&#40;$value&#41;;
    
           return $result;
         &#125;
         //---------------------------------------------------------------
         function fetch_object&#40;$value=0&#41;
         &#123;
           $result = false;
    
           if &#40;$value && $this->connection&#41;
             $result =  @mysql_fetch_object&#40;$value&#41;;
    
           return $result;
         &#125;
         
         //---------------------------------------------------------------
         function result&#40;$value=0, $num=-1&#41;
         &#123;
           $result = false;
    
           if &#40;$value && $num >= 0 && $this->connection&#41;
              $result =  @mysql_result&#40;$value, $num&#41;;
    
           return $result;
         &#125;
         //---------------------------------------------------------------
         function inserted_id&#40;&#41;
         &#123;
           $result = false;
    
           if &#40;$this->connection&#41;
             $result = mysql_insert_id&#40;&#41;;
    
           return $result;
         &#125;
         //---------------------------------------------------------------
         function free_query&#40;$query&#41;
         &#123;
           $result = false;
    
           if &#40;$this->connection&#41;
             $result = mysql_free_query &#40;$query&#41;;
    
           return $result;
         &#125;
         //---------------------------------------------------------------
         function check_error&#40;&#41;
         &#123;
           if &#40;$this->connection&#41;
           &#123;
             if &#40;mysql_errno &#40;&#41;&#41;
               die &#40;"Datenbankfehler&#58; " . mysql_error&#40;&#41;&#41;;
           &#125;
         &#125;
         
     &#125;
    ?>
    Außerdem ist so eine verschachtelung
    Code:
    mysql_fetch_assoc&#40;mysql_query&#40;$sql&#41;&#41;;
    eine mittlere katastophe

  4. #4
    HTML Newbie
    Themenstarter

    Registriert seit
    11.07.2008
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von bandit600
    Außerdem ist so eine verschachtelung
    Code:
    mysql_fetch_assoc&#40;mysql_query&#40;$sql&#41;&#41;;
    eine mittlere katastophe
    Erstmal danke an euch beiden für die Hilfe. Aber was gibt's an solchen Verschachtelungen auszusetzen?

  5. #5
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    Hats geklappt mit dem return?
    denke nämlich du wilst das was aus fetch() ausgelesen wird auch irgendwo speichern und weiterverwenden
    Something big is coming. And there will be pirates and ninjas and unicorns...

  6. #6
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von Creamroyal
    Zitat Zitat von bandit600
    Außerdem ist so eine verschachtelung
    Code:
    mysql_fetch_assoc&#40;mysql_query&#40;$sql&#41;&#41;;
    eine mittlere katastophe
    Erstmal danke an euch beiden für die Hilfe. Aber was gibt's an solchen Verschachtelungen auszusetzen?
    Zum Beispiel erschwert es die Fehlersuche bei Fehlverhalten des Scriptes.

    Gruß,
    Jojo

  7. #7
    HTML Newbie
    Themenstarter

    Registriert seit
    11.07.2008
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von Dodo
    Hats geklappt mit dem return?
    denke nämlich du wilst das was aus fetch() ausgelesen wird auch irgendwo speichern und weiterverwenden
    Jo das mit dem return hat geklappt. Zieht eine Verschachterlung auch Sicherheitsbedenken mit sich (oder erschwert
    es nur die Analyse von Fehlern usw.?)

    Nunja, ich wollte gerne eine Gildensoftware schreiben. Prozedual ist das kein Thema, allerdings wollte ich das gerne objektorientiert
    gestalten, damit ich mich so weiterentwickeln kann und dazu lerne.

  8. #8
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    Dann gib einfach die Verschachtelung weg?
    Code:
    public function query_assoc&#40; $sql &#41;
    &#123; $daten = mysql_query&#40;$sql&#41;;
      $ausgelesen = mysql_fetch_assoc&#40;$daten&#41;;
      return $ausgelesen;
    &#125;
    Something big is coming. And there will be pirates and ninjas and unicorns...

  9. #9
    HTML Newbie
    Themenstarter

    Registriert seit
    11.07.2008
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von Dodo
    Dann gib einfach die Verschachtelung weg?
    Code:
    public function query_assoc&#40; $sql &#41;
    &#123; $daten = mysql_query&#40;$sql&#41;;
      $ausgelesen = mysql_fetch_assoc&#40;$daten&#41;;
      return $ausgelesen;
    &#125;
    Dann bleibt doch die Erschwerung der Fehlersuche erhalten oder irre ich mich da jetzt?

    Edit: Ich habe einen verallgemeinernden Weg (sofern dieser korrekt ist) gefunden:

    Code:
    public function query&#40; $sql, $type &#41; &#123;
      $query = mysql_query&#40;$sql&#41;;
      return $result = $type&#40;$query&#41;;
    &#125;
    Diese Methode soll flexibel sein, sprich es können verschiedene Mysql-Methoden eingesetzt werden (mysql_fetch_assoc, mysql_fetch_array, mysql_num_rows usw.)
    Wäre diese Lösung ein guter Weg oder würdet ihr mir davon abraten?

  10. #10
    Bandit
    Gast

    Standard

    Es ist nicht eine der dümmsten ideen, nach mysql_query einen eventuellen fehler abzufangen, alles andere wäre eine schlechte programmierung.

Ähnliche Themen

  1. Datenbankverbindung herstellen und Daten hinzufügen
    Von tofu1987 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 16
    Letzter Beitrag: 19.07.2006, 18:42
  2. C++ Problem (objektorientiert) =>Klassenvererbung
    Von Delikanli im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 11
    Letzter Beitrag: 07.12.2005, 14:47

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •