It is intended for use ONLY if you have a *lot* of users, as this is not secure (a user's email addresses may be known to other users). If you only have a few users then run setUsersPasswordHash.php for each of them instead. WARNING; $usage = "\nUsage: php {$argv[0]} <IUnderStandTheRisks>"; echo $colorCLI->warning($warning); if ($argc != 2) { exit($colorCLI->error("\nWrong number of parameters{$usage}")); } else { if ($argv[1] !== 1 && $argv[1] != '<IUnderStandTheRisks>' && $argv[1] != 'IUnderStandTheRisks' && $argv[1] != 'true') { exit($colorCLI->error("\nInvalid parameter(s){$usage}")); } } $pdo = new Settings(); $users = $pdo->query("SELECT id, username, email, password FROM users"); $update = $pdo->Prepare('UPDATE users SET password = :password WHERE id = :id'); $Users = new Users(['Settings' => $pdo]); foreach ($users as $user) { if (needUpdate($user)) { $hash = $Users->hashPassword($user['email']); if ($hash !== false) { $update->execute([':password' => $hash, ':id' => $user['id']]); echo $colorCLI->primary('Updating hash for user:'******'username']; } else { echo $colorCLI->error('Error updating hash for user:'******'username']; } } } function needUpdate($user) { global $colorCLI;