How can a username generator be implemented in PHP to avoid duplicate usernames in a database?

To avoid duplicate usernames in a database when generating usernames in PHP, you can check if the generated username already exists in the database. If it does, generate a new username until a unique one is found. This can be achieved by querying the database to see if the generated username already exists and looping until a unique username is generated.

// Function to generate a unique username
function generateUniqueUsername($db) {
    do {
        $username = generateUsername(); // Function to generate a username
        $query = $db->prepare("SELECT COUNT(*) FROM users WHERE username = ?");
        $query->execute([$username]);
        $count = $query->fetchColumn();
    } while ($count > 0);

    return $username;
}

// Example of generating a unique username
$db = new PDO("mysql:host=localhost;dbname=mydatabase", "username", "password");
$username = generateUniqueUsername($db);
echo $username;