What are the best practices for creating a survey or user database using PHP and HTML forms?

When creating a survey or user database using PHP and HTML forms, it is important to properly sanitize and validate user input to prevent SQL injection attacks and ensure data integrity. Utilizing prepared statements with placeholders can help protect against SQL injection. Additionally, storing sensitive information securely by hashing passwords before storing them in the database is crucial for protecting user data.

<?php
// Establish a database connection
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Sanitize and validate user input
$name = mysqli_real_escape_string($conn, $_POST['name']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

// Prepare and execute SQL statement
$stmt = $conn->prepare("INSERT INTO users (name, email, password) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $password);
$stmt->execute();

// Close statement and connection
$stmt->close();
$conn->close();
?>