How can PHP be used to compare and update only the changed data in a database table?

When updating data in a database table, it is important to compare the new data with the existing data to determine what has changed. One way to achieve this is by fetching the existing data from the database, comparing it with the new data, and updating only the changed fields. This can be done efficiently using PHP by looping through the data and checking for differences before updating the database.

// Fetch existing data from the database
$existingData = $pdo->query("SELECT * FROM table")->fetch(PDO::FETCH_ASSOC);

// New data to be updated
$newData = [
    'field1' => 'new value 1',
    'field2' => 'new value 2',
    'field3' => 'new value 3'
];

// Compare existing data with new data and update only the changed fields
foreach ($newData as $key => $value) {
    if ($existingData[$key] != $value) {
        $pdo->query("UPDATE table SET $key = '$value' WHERE id = 1");
    }
}