나는 일하고있는 프로젝트를 위해 단순한 매매 웹 사이트를 구축하려고 노력하고있다.사용자가 mysql 문에서 올바른 정보를 얻을 수 있도록 하시겠습니까?
사용자는 말하자면 손이나 가상 은행에 돈을 가질 수 있습니다.
if ($_POST['deposit'] > 0 && $_POST['deposit'] <= $user['money']) {
$dbc -> beginTransaction();
$dbc -> query("SELECT id FROM items WHERE id = " . $user['id'] . " FOR UPDATE LIMIT 1");
$q = $dbc -> prepare("UPDATE items SET money = money-?, bank = bank+?");
$q -> execute(array($_POST['deposit'], $_POST['deposit']));
$dbc -> commit();
}
다른 계정은 사용자의 정보를 볼 수 있습니다 같은 돈을 자신의 양이 : 사용자가 if 문은 PHP에 싸여 자신의 계정에 자신의 손에서 돈을 입금 할 때 나는이 트랜잭션을 사용하고 있습니다. 계정에 돈을 입금하는 것처럼 계정에서 사용자의 데이터를 보는 경우 위 쿼리를 통해 mySQL에서 올바른 일관성있는 데이터를 얻을 수 있습니까?
나는 계정의 모든 정보를; 계정 그가 돈을 입금되는 것처럼 사용자의 데이터에 액세스하는 경우, MySQL의 쿼리는 새로운 갱신 된 행에 대한
$dbc -> query("SELECT * FROM items WHERE id = " . $account['id'] . ");
대기? 내 모든 쿼리가 내 프로젝트에서 일관성을 유지하는지 확인하고 싶습니다.
또한 SELECT FOR UPDATE 쿼리에 LIMIT 1을 사용해도 괜찮습니까?