What are the best practices for handling form input data in PHP to prevent SQL syntax errors and foreign key constraint failures?

When handling form input data in PHP to prevent SQL syntax errors and foreign key constraint failures, it is important to sanitize and validate the input data before using it in SQL queries. This can be done by using prepared statements with parameterized queries to prevent SQL injection attacks. Additionally, make sure to check for any foreign key constraints before inserting or updating data to avoid constraint failures.

// Sanitize and validate the input data
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);

// Prepare a SQL statement using prepared statements
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);

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

// Check for any foreign key constraints
if ($stmt->rowCount() > 0) {
    // Data inserted successfully
    echo "Data inserted successfully";
} else {
    // Handle constraint failure
    echo "Foreign key constraint failure";
}