What are some best practices for handling user input and server variables like IP addresses in PHP when updating database records?

When handling user input and server variables like IP addresses in PHP when updating database records, it is important to sanitize and validate the input to prevent SQL injection and other security vulnerabilities. One way to do this is by using prepared statements and parameterized queries to bind user input securely to database queries.

// Sanitize and validate user input
$userInput = filter_input(INPUT_POST, 'user_input', FILTER_SANITIZE_STRING);

// Get user's IP address
$userIP = $_SERVER['REMOTE_ADDR'];

// Prepare SQL statement with prepared statement
$stmt = $pdo->prepare("UPDATE table SET column = :user_input, ip_address = :user_ip WHERE id = :id");
$stmt->bindParam(':user_input', $userInput, PDO::PARAM_STR);
$stmt->bindParam(':user_ip', $userIP, PDO::PARAM_STR);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();