Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL Klasse

Einklappen

Neue Werbung 2019

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

  • MySQL Klasse

    Hallo Leute

    Hab im Folgenden mal meine selbst erstellte MySQL Klasse ausgestellt, die ich für ein Projekt verwenden möchte und würde gerne eure Meinungen dazu hören, bevor ich mich richtig an die Arbeit mache.

    PHP-Code:
    <?php

    class mysql {

        private 
    $db;    
        private static 
    $instance null;
        

        public static function 
    getInstance() {

            if (
    self::$instance == null) {
                
                
    self::$instance = new mysql();
            }
            
            return 
    self::$instance;
        }
        

        protected function 
    __construct() {}    
        private function 
    __clone() {}    
        
        
        public function 
    connect() {
        
            
    $this->db mysql_connect('server''host''password');
            
            
    mysql_select_db('db');
        }
        
        
        public function 
    close() {
        
            
    mysql_close($this->db);
        }
        
        
        public function 
    getArray($sql) {
        
            
    $result $this->query($sql);
            
            if (
    mysql_num_rows($result) == 1) {
                    
                return 
    mysql_fetch_assoc($result);
            }
            
            
    $output = array();
                
            while (
    $row mysql_fetch_assoc($result)) {
                        
                
    $output[] = $row;
            }
                
                return 
    $output;
        }
        
        
        public function 
    query($sql) {
        
            
    $result mysql_query($sql);
            
            return 
    $result;
        }
        
        
        public function 
    numRows($sql) {
            
            
    $query    $this->query($sql);
            
    $result     mysql_num_rows($query);
            
            return 
    $result;
        }
        
        
        public function 
    affRows($sql) {
        
            
    $query    $this->query($sql);
            
    $result    mysql_affected_rows($query);
            
            return 
    $result;
        }
    }

    ?>

    Verbesserungsvorschläge, Anregungen und Kritik sind sehr erwünscht, sofern sie kontruktiv sind

    MfG

  • #2
    Als erstes würde ich mal die getArray()-Methode ändern. Die Rückgabe ist nicht konsistent. Soll heißen: Du kannst nicht wissen ob das zurückgegebene Array nun ein Datensatz oder ein Array von Datensätzen ist....
    Das ist ziemlich unschön.

    Insgesamt seh ich auch keinen Vorteil deiner Klasse gegenüber anderen Herangehensweisen...

    Kommentar


    • #3
      mal son hinweis:

      es gibt bereits eine solche klasse: "mysqli"

      Kommentar


      • #4
        Zitat von md5 Beitrag anzeigen
        mal son hinweis:

        es gibt bereits eine solche klasse: "mysqli"
        Mhm, damit habe ich mich noch nie richtig befasst.

        Kennst du Quellen / Tutorials, die dieses Gebiet gut erklären?

        Kommentar


        • #5
          -> PHP: Mysqli - Manual

          Kommentar


          • #6
            Ich sehe keinen echten Vorteil in Deiner Klasse. Dafür wird es einem unmöglich, Fehler , bspw. beim Verbindungsaufbau, abzufangen. Das geht Deiner Klasse voll ab.

            Kommentar


            • #7
              PHP-Code:
                  public function query($sql) { 
                   
                      
              $result mysql_query($sql); 
                       
                      return 
              $result
                  } 
              Verhindert die Mehrfachverwendung der Klasse innerhalb einer Applikation pro Request. Hier fehlt die Angabe der Verbindungsressource.

              Kommentar


              • #8
                Hallo Gödda,

                ein meiner Meinung nach schönes Bsp. für eine MySQL-Klasse gibt es hier:
                www.peterkropff.de/tutorials/php_oop_3/oop_3.htm

                Ist gleichzeitig ein Tutorial für OOP!

                Gruß
                L

                Kommentar


                • #9
                  Na--ja. Wenn ich die ganzen or die (mysql_error()); schon lese... Sieht mir dann auch nicht nach nachhaltiger Lösung aus.

                  Vor allem der Teil ist super-sinnig:
                  PHP-Code:
                    $this -> con mysql_connect ($host$user$password
                                   or die (
                  mysql_error());
                     
                    if (
                  is_resource ($this -> con)) 
                  Denkt mal drüber nach

                  PS:
                  kleiner Tipp: Hat was damit zu tun:


                  Returns a MySQL link identifier on success, or FALSE on failure.

                  Kommentar

                  Lädt...
                  X