public static function create(array $input) { /** * Creates a new team. **/ global $raceididx; $EXPECTED = self::$createEXPECTED; sort($EXPECTED); ksort($input); $errors = array(self::T_CREATE_ERROR__UNEXPECTED_INPUT => $EXPECTED !== array_keys($input), self::T_CREATE_ERROR__INVALID_RACE => !in_array((int) $input['f_race_id'], array_keys($raceididx)), self::T_CREATE_ERROR__INVALID_COACH => !get_alt_col('coaches', 'coach_id', (int) $input['owned_by_coach_id'], 'coach_id'), self::T_CREATE_ERROR__INVALID_NAME => get_alt_col('teams', 'name', mysql_real_escape_string($input['name']), 'team_id') || empty($input['name']), self::T_CREATE_ERROR__INVALID_LEAGUE => get_alt_col('coaches', 'coach_id', (int) $input['owned_by_coach_id'], 'ring') != Coach::T_RING_GLOBAL_ADMIN && 0 == (int) SQLFetchField("SELECT COUNT(*) FROM memberships WHERE lid = " . (int) $input['f_lid'] . " AND cid = " . (int) $input['owned_by_coach_id'] . " AND ring >= " . Coach::T_RING_LOCAL_REGULAR), self::T_CREATE_ERROR__INVALID_DIVISION => $input['f_did'] != self::T_NO_DIVISION_TIE && $input['f_lid'] != get_alt_col('divisions', 'did', (int) $input['f_did'], 'f_lid')); foreach ($errors as $exitStatus => $halt) { if ($halt) { return array($exitStatus, null); } } $input['name'] = "'" . mysql_real_escape_string($input['name']) . "'"; # Need to quote strings when using INSERT statement. $query = "INSERT INTO teams (" . implode(',', $EXPECTED) . ") VALUES (" . implode(',', $input) . ")"; if (mysql_query($query)) { $tid = mysql_insert_id(); } else { self::$T_CREATE_SQL_ERROR['query'] = $query; self::$T_CREATE_SQL_ERROR['error'] = mysql_error(); return array(self::T_CREATE_ERROR__SQL_QUERY_FAIL, null); } SQLTriggers::run(T_SQLTRIG_TEAM_NEW, array('id' => $tid, 'obj' => new self($tid))); return array(self::T_CREATE_SUCCESS, $tid); }
function SQLBoolEval($query) { return (bool) SQLFetchField($query); }