What are the best practices for updating existing passwords in a database using PHP to enhance security?

To enhance security, it is important to regularly update passwords stored in a database. One way to achieve this is by using PHP to hash the new password and update the existing password in the database with the hashed value. This helps protect user information in case of a data breach.

// Connect to the database
$pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');

// Get the user's current password from the database
$user_id = 1; // Example user ID
$stmt = $pdo->prepare("SELECT password FROM users WHERE id = :id");
$stmt->execute(['id' => $user_id]);
$current_password = $stmt->fetchColumn();

// Generate a new password
$new_password = 'new_password';
$hashed_password = password_hash($new_password, PASSWORD_DEFAULT);

// Update the user's password in the database
$stmt = $pdo->prepare("UPDATE users SET password = :password WHERE id = :id");
$stmt->execute(['password' => $hashed_password, 'id' => $user_id]);