How can PHP developers optimize the process of inserting data into multiple related tables in a relational database while maintaining data consistency and accuracy?

When inserting data into multiple related tables in a relational database, PHP developers can optimize the process by using transactions to ensure data consistency and accuracy. By wrapping the insert statements in a transaction, developers can guarantee that either all inserts succeed or none of them do, preventing partial data insertion and maintaining data integrity.

<?php

// Establish a database connection
$pdo = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password');

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

try {
    // Insert data into the first table
    $pdo->query("INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2')");

    // Get the last inserted ID
    $lastId = $pdo->lastInsertId();

    // Insert data into the second table using the last inserted ID
    $pdo->query("INSERT INTO table2 (table1_id, column3) VALUES ('$lastId', 'value3')");

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