Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit PDO

Einklappen

Neue Werbung 2019

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

  • Problem mit PDO

    Hallo, ich habe ein Problem! Es geht um folgenen Quellcode:

    PHP-Code:
    class User {
        
        public function 
    register($username$password$email) {
        
            if(
    $this->check_for_user($username)) {
        
            
    $pdoparams = array( 
               
    ':username' => $username,
             
    ':password' => md5(sha1($password)),
             
    ':email' => $email 
              
    );
           
    $sql "INSERT INTO users
                (username, password, email) VALUES (:username, :password, :email);"

                  
    $stmt MyDB::getInstance()->prepare($sql); 
                  
    $stmt->execute($pdoparams);
        
        } else {
        
          echo 
    "Username bereits vorhanden!";
          return 
    false;
        }
        
        }
        
        private function 
    check_for_user($username) {
            
    $pdoparams = array( ':username' => $username );
            
    $sql "SELECT id FROM users WHERE username = :username LIMIT 1;"
            
    $stmt MyDB::getInstance()->prepare($sql); 
            
    $stmt->execute($pdoparams);
                                  
           if (
    $stmt->columnCount()==1) {
               echo 
    "true";
              return 
    true// User vorhanden!
          
    }else {
              echo 
    "false";
            return 
    false// User noch nicht vorhanden!
          
    }
        
        
        }


    Mein Problem liegt vermutlich in der Methode check_for_user(), genauer gesagt bei stmt->columnCount() da diese Methode komischerweise IMMER 1 zurückgibt, auch wenn der User gar nicht existiert (also eigentlich 0 zurückgegeben werden müsste!) Wisst ihr vielleicht einen Rat?! Wäre mir echt sehr hilfreich!

    Gruß,
    Dennito
    Anwendungsentwicklung: Python, C, C++, Java
    Webentwicklung: (X)HTML, CSS, PHP, MySQL

  • #2
    Wieso du selektierst immer eine Spalte "id" daher ist die Anzahl der Spalten im Resultat auch immer 1? Ich glaub du willst nicht Spalten sondern Zeilen zählen oder?

    Kommentar


    • #3
      verdammt, du hast Recht!!! Jetzt wo du es sagst, fällt mir es auch auf!

      Danke, ich werds sofort ausprobieren!

      // edit

      aber gibt es bei PDO denn sowas wie mysql_num_rows() ?

      vllt. fetchAll() und dann einfach die größe des Arrays anzeigen lassen? oder gibt es etwas effektiveres, eleganteres?
      Anwendungsentwicklung: Python, C, C++, Java
      Webentwicklung: (X)HTML, CSS, PHP, MySQL

      Kommentar

      Lädt...
      X