How can PHP developers ensure data consistency in a multi-user system to prevent data loss during simultaneous updates?
To ensure data consistency in a multi-user system and prevent data loss during simultaneous updates, PHP developers can implement database transactions. By using transactions, developers can group multiple SQL queries into a single unit of work that either all succeed or all fail, maintaining data integrity.
// Establish a database connection
$pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');
// Begin a transaction
$pdo->beginTransaction();
try {
// Perform multiple SQL queries within the transaction
$pdo->exec("UPDATE table SET column = 'new_value' WHERE id = 1");
$pdo->exec("UPDATE table SET column = 'another_value' WHERE id = 2");
// Commit the transaction if all queries succeed
$pdo->commit();
} catch (PDOException $e) {
// Rollback the transaction if an error occurs
$pdo->rollBack();
echo "Transaction failed: " . $e->getMessage();
}