What are the potential pitfalls of using multi_query for transaction handling in PHP?

Using multi_query for transaction handling in PHP can lead to potential pitfalls such as the lack of error handling for individual queries within the transaction, making it difficult to rollback properly if one of the queries fails. To solve this issue, you should use prepared statements with transactions to ensure all queries are executed successfully before committing the transaction.

<?php
// Establish database connection
$mysqli = new mysqli("localhost", "username", "password", "database");

// Begin transaction
$mysqli->begin_transaction();

// Prepare and execute multiple queries within the transaction
$query1 = "INSERT INTO table1 (column1) VALUES ('value1')";
$query2 = "INSERT INTO table2 (column2) VALUES ('value2')";

$mysqli->query($query1);
$mysqli->query($query2);

// Commit transaction if all queries are successful
$mysqli->commit();

// Close database connection
$mysqli->close();
?>