Realizzando una funzione che si occupa semplicemente di effettuare una insert qual'è il metodo migliore per passare le informazioni sul database?

1 - Dichiarare come globale la risorsa $database per usarla nella funzione (anche se ho letto sulla guida che è sconsigliato dichiarare variabili globali nelle funzioni. Perchè?)
2 - Passare il database come parametro della funzione
codice:
function sql_insert($)
{
$s_sql = "SELECT * FROM TABELLA";
mysql_query($s_sql, $db);
}
3 - Far sì che il database sia riconosciuto automaticamente (senza doverlo passare come parametro di mysql_query)

Credevo che mysql_query avrebbe preso (as usual) da solo ilriferimento al database ma appunto nella funzione sembra che debba specificarglielo.

Sapete aiutarmi?

Pictor