function getCompetitorId() { $clauses = array(); $cols = $this->getCompetitorColumns(); foreach (array('first_name', 'last_name', 'sex_id', 'age', 'division_id') as $col) { $clauses[] = sprintf('%s = %s', $col, $cols[$col]); } $sql = sprintf('select competitor_id from %s where %s', CmaticSchema::getTypeDbTable('competitor'), implode(' and ', $clauses)); $conn = PdoHelper::GetPdo(); $results = $conn->query($sql)->fetchAll(PDO::FETCH_ASSOC); switch (count($results)) { case 0: return null; case 1: return $results[0]['competitor_id']; default: throw new Exception('Multiple possible competitor IDs'); } }