How can PHP developers effectively utilize databases for storing user information securely?

To securely store user information in databases, PHP developers can utilize prepared statements with parameterized queries to prevent SQL injection attacks. By using PDO (PHP Data Objects) or mysqli extensions, developers can ensure that user input is properly sanitized before being executed in SQL queries.

// Establish a database connection using PDO
$dsn = 'mysql:host=localhost;dbname=database_name';
$username = 'username';
$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());
}

// Prepare a SQL statement with parameters
$stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (:username, :password)");

// Bind parameters and execute the statement
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);

$stmt->execute();