host = $host; $this->dbUser = $dbUser; $this->dbPass = $dbPass; $this->dbName = $dbName; $this->connectToDb(); } /** * Establishes connection to MySQL and selects a database * @return void * @access private */ function connectToDb() { // Make connection to MySQL server if (!$this->dbConn = @mysql_connect($this->host, $this->dbUser, $this->dbPass)) { trigger_error('Could not connect to server'); $this->connectError = true; // Select database } else if (!@mysql_select_db($this->dbName,$this->dbConn)) { trigger_error('Could not select database'); $this->connectError = true; } } /** * Checks for MySQL errors * @return boolean * @access public */ function isError() { if ($this->connectError) { return true; } $error = mysql_error($this->dbConn); if (empty($error)) { return false; } else { return true; } } /** * Returns an instance of MySQLResult to fetch rows with * @param $sql string the database query to run * @return MySQLResult * @access public */ function &query($sql) { if (!$queryResource = mysql_query($sql, $this->dbConn)) { trigger_error('Query failed: ' . mysql_error($this->dbConn) . ' SQL: ' . $sql); } else { return new MySQLResult($this, $queryResource); } } } /** * MySQLResult Data Fetching Class * @access public * @package SPLIB */ class MySQLResult { /** * Instance of MySQL providing database connection * @access private * @var MySQL */ var $mysql; /** * Query resource * @access private * @var resource */ var $query; /** * MySQLResult constructor * @param object mysql (instance of MySQL class) * @param resource query (MySQL query resource) * @access public */ function MySQLResult(&$mysql, $query) { $this->mysql = &$mysql; $this->query = $query; } /** * Fetches a row from the result * @return array * @access public */ function fetch() { if ($row = mysql_fetch_array($this->query, MYSQL_ASSOC)) { return $row; } else if ( $this->size() > 0 ) { mysql_data_seek($this->query, 0); return false; } else { return false; } } /** * Returns the number of rows selected * @return int * @access public */ function size () { return mysql_num_rows($this->query); } /** * Returns the ID of the last row inserted * @return int * @access public */ function insertID () { return mysql_insert_id($this->mysql->dbConn); } /** * Checks for MySQL errors * @return boolean * @access public */ function isError() { return $this->mysql->isError(); } /** * Returns an instance of MySQLResult to fetch rows with * @param $sql string the database query to run * @return MySQLResult * @access public */ } ?> Acme Referee's or Teacher's Whistle - Birmingham Museums & Art Gallery Information Centre
             
Museums Home BMAGiC Home Search Browse BMAGiC Help About BMAGiC Contact Us
           

Acme Referee's or Teacher's Whistle

View main imageView larger image
Birmingham Museums and Art Gallery

Additional Images

Click on each image below to view at full size:

Basic Information

Accession Number:1999F276.1
Collection:Social History
Date:1920 - 1939

Maker Information

Manufacturer:J Hudson & Co - View history

Notes

Following Hudson's success with the 'Metropolitan' police whistle, 1884 saw the launch of football's famous 'Acme Thunderer', a pea whistle which was widely used for sporting events. Prior to the use of a whistle, referees attracted players' attention by waving a handkerchief. The Thunderer became, and remains, the world's most popular and best selling pea whistle. Other lines developed by Hudson & Co include the 'Acme Siren', sometimes known as the cyclist's road clearer, introduced and patented in 1895; a range of bird calls, starting with a brass reeded duck call of 1888; and the 'Acme Silent Dog Whistle', invented in 1935, which was the first 'noiseless' dog whistle.Hudson & Co continue to make high quality whistles in the Jewellery Quarter today, with 125 years of whistle manufacturing history.

Presented by E H Robinson, 1981.

Further Information

Production Period:20th century
Material(s):White metal
Place of Origin:Birmingham, England

Dimensions

Height:5.4 cm
Width:2.2 cm
Diameter:2.5 cm