私は、私が取り組んでいるプロジェクトのための簡単な売買ウェブサイト(偽りの金でのみ)を構築しようとしています。ユーザが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から正しい一貫性のあるデータが得られることを確認しますか?
アカウントからすべての情報を取得するには、を使用します。アカウントは、彼がお金を堆積されたと同じように、ユーザーのデータにアクセスする場合は
$dbc -> query("SELECT * FROM items WHERE id = " . $account['id'] . ");
、MySQLのクエリは、更新された新しい行を待ちますか?すべてのクエリがプロジェクト全体で一貫していることを確認したい
また、SELECT FOR UPDATEクエリでLIMIT 1を使用しても問題ありませんか?