本文整理汇总了PHP中SmrMySqlDatabase::lock方法的典型用法代码示例。如果您正苦于以下问题:PHP SmrMySqlDatabase::lock方法的具体用法?PHP SmrMySqlDatabase::lock怎么用?PHP SmrMySqlDatabase::lock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SmrMySqlDatabase
的用法示例。
在下文中一共展示了SmrMySqlDatabase::lock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: SmrMySqlDatabase
// *
// ***********************************
// debug the death
$debug = false;
// assume yes for now
$container["continue"] = "Yes";
// new db object to avoid interfearance with other db-objects
$dead_ppl = new SmrMySqlDatabase();
// we need to enter the loop at least once
$result = true;
// with a while loop we have to pick up only one result row from the db query
// do all our work (so over threads have the ability to pick up other rows)
// then lock table again to pic up another row
while ($result) {
// lock kills table for the whole process
$dead_ppl->lock("kills");
// pick one random row we are going to process
$dead_ppl->query("SELECT *\n\t\t\t\t\t FROM kills\n\t\t\t\t\t WHERE game_id = {$player->game_id} AND\n\t\t\t\t\t processed = 'FALSE'\n\t\t\t\t\t ORDER BY rand()\n\t\t\t\t\t LIMIT 1\n\t\t\t\t\t ");
// did we get one result?
if ($dead_ppl->next_record()) {
// get their id's
$killed_id = $dead_ppl->f("dead_id");
$killer_id = $dead_ppl->f("killer_id");
$curr_sector = $dead_ppl->f("sector_id");
$dead_exp = $dead_ppl->f("dead_exp");
$kill_exp = $dead_ppl->f("kill_exp");
// we have to set the 'process' column to true here
// BEFORE we give access free to that table.
// otherwise another thread could pick this row up
// but we cannot delte the entry before we sent that poor guy back to his hq
$db->query("UPDATE kills SET processed = 'TRUE' WHERE game_id = {$player->game_id} AND dead_id = {$killed_id} AND killer_id = {$killer_id}");