What best practices should be followed when storing user data in a MySQL database using PHP?

When storing user data in a MySQL database using PHP, it is important to follow best practices to ensure the security and integrity of the data. This includes using parameterized queries to prevent SQL injection attacks, validating and sanitizing user input to prevent malicious data entry, and encrypting sensitive information such as passwords.

// Example of storing user data in a MySQL database using PHP with best practices

// Establish a connection to the MySQL database
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

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

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

// Prepare a parameterized query to insert user data
$stmt = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $email, $password);

// Validate and sanitize user input
$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

// Execute the query to insert user data
$stmt->execute();

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