こんにちは、株式会社CFlatです。 ※ CakePHPのコアライブラリを弄ります。CakePHPのアップデート時などには注意して下さい。また、修正は自己責任でお願いします。 PHP用のフレームワークは数多かれど、中でもそこそこ名前の挙がるCakePHP[1]。単純なWebアプリケーション(とも言えない程度のHP)を作るなら素早く実装できるのですが、ちょこっと真面目にSQLを弄り出すと、途端に不満が続出してきます[2]。 行ロックくらいは寄越せや、ってことで、微妙に古めですが手元のCakePHP2.3.1をいろいろ弄ってみることにしました[3]。DBにはMySQLを使います。 方針 ・$this->Model->find()の第二引数に 'lock' => ... という項目を追加すれば、ロックができるようにする ・'lock' => 'read' では、読み取ったデータの一貫性を保証する