How can PHP developers ensure data consistency when updating category names in a database with multiple related records?

When updating category names in a database with multiple related records, PHP developers can ensure data consistency by using transactions. By wrapping the update operation within a transaction, developers can ensure that either all related records are updated successfully or none are updated at all, thus maintaining data consistency.

<?php
// Establish database connection
$pdo = new PDO("mysql:host=localhost;dbname=your_database", "username", "password");

// Begin a transaction
$pdo->beginTransaction();

try {
    // Update category name in the main category table
    $updateMainCategory = $pdo->prepare("UPDATE categories SET name = :newName WHERE id = :categoryId");
    $updateMainCategory->bindParam(':newName', $newCategoryName);
    $updateMainCategory->bindParam(':categoryId', $categoryId);
    $updateMainCategory->execute();

    // Update category name in related records table
    $updateRelatedRecords = $pdo->prepare("UPDATE related_records SET category_name = :newName WHERE category_id = :categoryId");
    $updateRelatedRecords->bindParam(':newName', $newCategoryName);
    $updateRelatedRecords->bindParam(':categoryId', $categoryId);
    $updateRelatedRecords->execute();

    // Commit the transaction
    $pdo->commit();
    
    echo "Category name updated successfully!";
} catch (Exception $e) {
    // Rollback the transaction if an error occurs
    $pdo->rollBack();
    
    echo "An error occurred: " . $e->getMessage();
}
?>