2
InnoDBテーブルからコードを選択してユーザに提供するPHPスクリプトがあります。それが選択されると、テーブルに戻ってテーブルが更新されます。PHPで更新するためのMySQLの選択とロック
部分コード:
その後$read = "SELECT code FROM codes WHERE someCondition = true"
:
$update = "UPDATE codes SET status = 'assigned', timeAssigned = NOW() WHERE someCondition = true"
がどのように私は少しより堅牢これを行うと、同じコードを取得して二人のユーザーを防ぐためにはInnoDBのロックを使用して行くのです?
、ロックされた行を更新することができます知っているので、どのように私はUPDATEクエリを修正しますか? – bcmcfc
同じ接続で実行されている限り、これを行う必要はありません。また、トランザクションを実行する必要があります。 – Evert
@bcmcfc:ロックは接続レベルで確立されます。同じ接続を使用して更新を行う限り、許可されます。他の接続から試してみると、ロックされたフィールドを更新しようとする「他の誰か」とみなされます。 –