What are the best practices for handling database connections and user authentication in PHP applications, especially when dealing with multiple users and databases?

Issue: When dealing with multiple users and databases in PHP applications, it is important to properly handle database connections and user authentication to ensure security and efficiency. Best practices for handling database connections and user authentication in PHP applications include using secure connection methods, such as PDO or MySQLi, to interact with databases. For user authentication, it is recommended to hash passwords using strong algorithms like bcrypt and store them securely. Additionally, implementing proper session management and access control mechanisms can help protect sensitive data and prevent unauthorized access.

// Establish a secure database connection using PDO
$dsn = 'mysql:host=localhost;dbname=mydatabase';
$username = 'root';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die('Connection failed: ' . $e->getMessage());
}

// User authentication example with bcrypt hashing
$password = 'userpassword';
$hashed_password = password_hash($password, PASSWORD_BCRYPT);

// Verify user password
if (password_verify($password, $hashed_password)) {
    echo 'Password is correct';
} else {
    echo 'Password is incorrect';
}