How can PHP scripts efficiently handle updating multiple columns in two databases?

When updating multiple columns in two databases efficiently with PHP scripts, you can use transactions to ensure data integrity and consistency. By wrapping the update queries for both databases in a transaction, you can commit the changes only if all updates are successful. This helps prevent partial updates and maintains data integrity across both databases.

<?php
// Connect to the first database
$pdo1 = new PDO("mysql:host=localhost;dbname=database1", "username", "password");
$pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Connect to the second database
$pdo2 = new PDO("mysql:host=localhost;dbname=database2", "username", "password");
$pdo2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

try {
    // Begin a transaction
    $pdo1->beginTransaction();
    $pdo2->beginTransaction();

    // Update columns in the first database
    $stmt1 = $pdo1->prepare("UPDATE table1 SET column1 = :value1, column2 = :value2 WHERE id = :id");
    $stmt1->execute(array(':value1' => 'new_value1', ':value2' => 'new_value2', ':id' => 1));

    // Update columns in the second database
    $stmt2 = $pdo2->prepare("UPDATE table2 SET column3 = :value3, column4 = :value4 WHERE id = :id");
    $stmt2->execute(array(':value3' => 'new_value3', ':value4' => 'new_value4', ':id' => 1));

    // Commit the transaction if all updates are successful
    $pdo1->commit();
    $pdo2->commit();

    echo "Updates successful";
} catch (Exception $e) {
    // Rollback the transaction if any update fails
    $pdo1->rollBack();
    $pdo2->rollBack();

    echo "Error updating databases: " . $e->getMessage();
}
?>