What are the benefits of using stored procedures and transactions in PHP applications, and how do they contribute to data integrity and performance?

Using stored procedures and transactions in PHP applications can help improve data integrity by ensuring that database operations are executed consistently and reliably. Stored procedures allow for reusable code that can be called multiple times, reducing the risk of errors and improving maintainability. Transactions help maintain data consistency by grouping database operations together and ensuring that they are either all executed successfully or rolled back in case of errors.

// Example of using stored procedure and transaction in PHP

// Connect to the database
$pdo = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password');

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

try {
    // Prepare and execute a stored procedure
    $stmt = $pdo->prepare('CALL sp_update_user(:id, :name)');
    $stmt->bindParam(':id', $userId);
    $stmt->bindParam(':name', $newName);
    $stmt->execute();

    // Commit the transaction if everything is successful
    $pdo->commit();
} catch (Exception $e) {
    // Rollback the transaction in case of errors
    $pdo->rollBack();
    echo 'Error: ' . $e->getMessage();
}