Как я могу гарантировать, что если пользователь-a вручную обновляет часть своей информации, когда пользователь-b обращается к данным пользователя-a, этот пользователь-b, получающий доступ к информации, получает правильную обновленную информацию, а не старые устаревшие данные для пользователя? а.
Я понимаю, что транзакция хороша и блокировка на уровне строк, я просто хочу убедиться, что я делаю это правильно!
При обновлении информации о пользователе, которую я использую,
$dbc -> beginTransaction();
$dbc -> query("SELECT id FROM accounts WHERE id = " . $user['id'] . " FOR UPDATE LIMIT 1");
$q = $dbc -> prepare("UPDATE accounts SET name = ?");
$q -> execute(array($_POST['name']));
$dbc -> commit();
Использование вышеизложенного блокирует данные пользователя a, так что когда пользователь b получает свои данные для пользователя a,
$q = $dbc -> ("SELECT * FROM accounts WHERE id = ?");
$q -> execute(array($_GET['id']));
Он получит правильные обновленные данные? Или мне нужно использовать транзакцию при получении данных user-a для user-b ??
Меня немного смущают все эти блокировки и прочее, как вы, вероятно, можете сказать?!?
Спасибо