What are the best practices for handling form data in PHP to avoid security vulnerabilities like SQL injection?

To avoid security vulnerabilities like SQL injection when handling form data in PHP, it is important to use prepared statements with parameterized queries to sanitize and validate user input before executing any SQL queries. This helps prevent malicious users from injecting SQL code into form fields to manipulate the database.

// Establish 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']);

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

// Execute the statement
$stmt->execute();

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