Username auslesen aus einer mysql datenbank mit php?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Hast du aber gerade Glück :)

 public function readLogin()
    {
        $query = "SELECT name from login WHERE name=?";

        $stmt = $this->connection->prepare($query);
        $stmt->bind_param('s', $this->login_name);
        $stmt->execute();
        $result = $stmt->get_result();

        while ($row = $result->fetch_assoc()) {
            if ($row['name'] == $this->login_name) {
                return $row['name'];
            }
        }
    }

Mein Beispiel ist eine Klasse (OO). Daher nicht wundern, dass "login_name" nicht zu sehen ist. Es handelt sich um ein Attribut meiner Klasse. "login_name" kannst du analog zu deinem Usernamen setzen.

Wahrscheinlich hast du drei User mit dem gleichen Namen auf der DB - was selbstverständlich nicht sein sollte.

Woher ich das weiß:Berufserfahrung – > 20 Jahre in der Softwareentwicklung

hmmmm.... ich würde Feldbezeichnungen wie "name" generell vermeiden, sondern eindeutigere Bezeichnungen verwenden, die zudem nicht auch in irgendwelchen Programmier- oder Scriptsprachen als Schlüsselwörter verwendet werden. Das führt sonst gerne mal zu sehr lustigen Verhaltensweisen und kuriosen Ergebnissen.

Wenn die Spalte den Benutzernamen speichern soll, warum also nicht username statt name? Schon hast du es vermieden, das in manchen Sprachen übliche Schlüsselwort name zu verwenden. Zudem ist der Feldbezeichner dann eindeutig - auch ohne weitere Erklärungen.

Select name FROM'tabelle' where username='username';

So erhälst du den Namen (Spalte) des Namen, wo der Username dem entspricht. Diesen kannst du dann in die Variable speichern.

select name from users where id = "1"

mal simpel gemacht. mit where kannst du filtern auf ein feld. die 1 ersetzt dann z.b. durch $id


Frage9547 
Beitragsersteller
 04.04.2024, 16:55

OK, versuch ich mal