What are the best practices for handling data updates in PHP when dealing with multiple tables, such as "user_merkmale" and "users"?

When dealing with data updates in PHP involving multiple tables like "user_merkmale" and "users", it is important to use transactions to ensure data consistency. This involves wrapping the update queries in a transaction block and committing the changes only if all updates are successful. Additionally, using prepared statements can help prevent SQL injection attacks.

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

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

try {
    // Update user_merkmale table
    $stmt1 = $pdo->prepare("UPDATE user_merkmale SET column1 = :value WHERE user_id = :user_id");
    $stmt1->execute(array(':value' => $value1, ':user_id' => $user_id));

    // Update users table
    $stmt2 = $pdo->prepare("UPDATE users SET column2 = :value WHERE user_id = :user_id");
    $stmt2->execute(array(':value' => $value2, ':user_id' => $user_id));

    // Commit transaction
    $pdo->commit();
} catch (Exception $e) {
    // Rollback transaction if an error occurs
    $pdo->rollBack();
    echo "Error updating data: " . $e->getMessage();
}
?>