UPDATEの結果に対して処理を行いたいのですが、以下のプログラムを複数のユーザーが同時に実行した場合、
if($count){}の分岐を2人以上通ってしまうことはありえますか?
絶対に最初の1人のみif($count){}の処理を行いたいのですが、あり得てしまう場合は、記述によりどのように回避する手段がありますでしょうか。
※テーブルtest_table(Inno DB)の行は1つで、カラムupdate_flgは処理実行前は0
※トランザクション分離レベルは、何も宣言していないためデフォルト(REPEATABLE READ)です。
PHP
1$sql = "UPDATE test_table 2 SET update_flg = :update_flg 3 WHERE update_flg = 0"; 4$sth = $pdo -> prepare($sql); 5$sth -> bindValue(':update_flg', mt_rand(1, 9), PDO::PARAM_INT); 6$sth -> execute(); 7$count = $sth -> rowCount(); 8 9if($count){ 10 //同時に起きてほしくない処理 11 echo 'UPDATE!'; 12} 13 14exit;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/10 02:43