當前位置: 首頁>>代碼示例>>PHP>>正文


PHP SmrMySqlDatabase::getChangedRows方法代碼示例

本文整理匯總了PHP中SmrMySqlDatabase::getChangedRows方法的典型用法代碼示例。如果您正苦於以下問題:PHP SmrMySqlDatabase::getChangedRows方法的具體用法?PHP SmrMySqlDatabase::getChangedRows怎麽用?PHP SmrMySqlDatabase::getChangedRows使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在SmrMySqlDatabase的用法示例。


在下文中一共展示了SmrMySqlDatabase::getChangedRows方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: changeNPCLogin

function changeNPCLogin()
{
    global $NPC_LOGIN, $actions, $NPC_LOGINS_USED, $underAttack, $previousContainer;
    if ($actions > 0) {
        debug('We have taken actions and now want to change NPC, let\'s exit and let next script choose a new NPC to reset execution time', getrusage());
        exitNPC();
    }
    $actions = -1;
    $GLOBALS['TRADE_ROUTE'] = null;
    $db = new SmrMySqlDatabase();
    $db->query('UPDATE npc_logins SET working=' . $db->escapeBoolean(false) . ' WHERE login=' . $db->escapeString($NPC_LOGIN['Login']));
    if ($db->getChangedRows() > 0) {
        debug('Unlocked NPC: ' . $NPC_LOGIN['Login']);
    } else {
        debug('Failed to unlock NPC: ' . $NPC_LOGIN['Login']);
    }
    $NPC_LOGIN = null;
    // We chose a new NPC, we don't care what we were doing beforehand.
    $previousContainer = null;
    debug('Choosing new NPC');
    $db2 = new SmrMySqlDatabase();
    $db->query('SELECT login, npc.player_name, alliance_name
				FROM npc_logins npc
				LEFT JOIN account a USING(login)
				LEFT JOIN player p ON a.account_id = p.account_id AND p.game_id = ' . $db->escapeNumber(NPC_GAME_ID) . '
				WHERE active=' . $db->escapeBoolean(true) . ' AND working=' . $db->escapeBoolean(false) . ' AND login NOT IN (' . $db->escapeArray($NPC_LOGINS_USED) . ')
				ORDER BY (turns IS NOT NULL), turns DESC');
    while ($db->nextRecord()) {
        $db2->query('UPDATE npc_logins SET working=' . $db2->escapeBoolean(true) . ' WHERE login=' . $db2->escapeString($db->getField('login')) . ' AND working=' . $db2->escapeBoolean(false));
        if ($db2->getChangedRows() > 0) {
            $NPC_LOGIN = array('Login' => $db->getField('login'), 'PlayerName' => $db->getField('player_name'), 'AllianceName' => $db->getField('alliance_name'));
            break;
        }
    }
    $NPC_LOGINS_USED[] = $NPC_LOGIN['Login'];
    if ($NPC_LOGIN === null) {
        debug('No free NPCs');
        exitNPC();
    }
    debug('Chosen NPC: ' . $NPC_LOGIN['Login']);
    if (SmrAccount::getAccountByName($NPC_LOGIN['Login']) == null) {
        debug('Creating account for: ' . $NPC_LOGIN['Login']);
        $account =& SmrAccount::createAccount($NPC_LOGIN['Login'], '', 'NPC@smrealms.de', 'NPC', 'NPC', 'NPC', 'NPC', 'NPC', 'NPC', 'NPC', 0, 0);
        $account->setValidated(true);
    } else {
        $account =& SmrAccount::getAccountByName($NPC_LOGIN['Login']);
    }
    $GLOBALS['account'] =& $account;
    SmrSession::$account_id = $account->getAccountID();
    $underAttack = false;
    //Auto-create player if need be.
    $db->query('SELECT 1 FROM player WHERE account_id = ' . $account->getAccountID() . ' AND game_id = ' . NPC_GAME_ID . ' LIMIT 1');
    if (!$db->nextRecord()) {
        SmrSession::$game_id = 0;
        //Have to be out of game to join game.
        debug('Auto-creating player: ' . $account->getLogin());
        processContainer(joinGame(SmrSession::$game_id, $NPC_LOGIN['PlayerName']));
    }
    throw new Exception('Forward');
}
開發者ID:smrealms,項目名稱:smrv2.0,代碼行數:60,代碼來源:npc.php


注:本文中的SmrMySqlDatabase::getChangedRows方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。