What best practices should be followed when handling error messages and data validation in PHP MySQL queries to ensure data integrity and security?

When handling error messages and data validation in PHP MySQL queries, it is important to sanitize user input to prevent SQL injection attacks and validate data to ensure data integrity. Additionally, error messages should not reveal sensitive information to users to prevent potential security risks.

// Example of sanitizing user input and validating data in a PHP MySQL query

// Sanitize user input
$username = mysqli_real_escape_string($connection, $_POST['username']);
$password = mysqli_real_escape_string($connection, $_POST['password']);

// Validate data
if (!empty($username) && !empty($password)) {
    // Perform MySQL query
    $query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
    $result = mysqli_query($connection, $query);

    if ($result) {
        // Process query result
    } else {
        // Handle query error
        echo "Error: " . mysqli_error($connection);
    }
} else {
    // Handle validation error
    echo "Please enter a valid username and password.";
}