What are the best practices for updating a user's counter value in a database when a form is submitted in PHP?

When updating a user's counter value in a database after a form submission in PHP, it is important to ensure that the input data is sanitized to prevent SQL injection attacks. Additionally, it is recommended to use prepared statements to securely execute the update query. Lastly, remember to validate the user input before updating the counter value to maintain data integrity.

// Sanitize and validate user input
$counter_value = filter_var($_POST['counter_value'], FILTER_SANITIZE_NUMBER_INT);

if (!is_numeric($counter_value)) {
    // Handle invalid input error
    exit("Invalid input for counter value");
}

// Prepare and execute the update query
$stmt = $pdo->prepare("UPDATE users SET counter = counter + :value WHERE id = :user_id");
$stmt->bindParam(':value', $counter_value, PDO::PARAM_INT);
$stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$stmt->execute();

// Check if the update was successful
if ($stmt->rowCount() > 0) {
    echo "Counter value updated successfully";
} else {
    echo "Failed to update counter value";
}