Files
blog/app/Model/UserModel.php
2025-06-20 07:55:37 +00:00

47 lines
994 B
PHP

<?php
namespace Blog\Model;
use Blog\Entity\User;
use Blog\Database\Database;
use PDO;
/**
* Modellklasse für Benutzer-bezogene Datenbankoperationen.
*/
class UserModel {
/**
* @var PDO Die Datenbankverbindung.
*/
private $db;
/**
* Konstruktor. Stellt die Datenbankverbindung her.
*/
public function __construct() {
$this->db = Database::getConnection();
}
/**
* Holt einen Benutzer anhand des Benutzernamens.
*
* @param string $username Der Benutzername.
* @return User|null Das User-Objekt oder null, falls nicht gefunden.
*/
public function getUserByUsername(string $username):?User {
$stmt = $this->db->prepare(<<<SQL
SELECT id, username, password
FROM users
WHERE username = :username
LIMIT 1
SQL);
$stmt->bindParam(':username', $username);
$stmt->execute();
$row = $stmt->fetchObject();
if(!$row)
return null;
return new User($row->id, $row->username, $row->password);
}
}