allora, per star tranquilli con le sql injection, indipendentemente dalla codifica, è necessario:
- verificare se il magic_quotes_gpc è attivo ed eventualmente disabilitarlo tramite htaccess
- se non è possibile disabilitare l'htaccess effettuare uno stripslashes dei parametri GET/POST/FILES in ingresso

Dopo di che scrivere una funzione/metodo che prenda la query più N parametri, acquisendo i parametri aggiuntivi tramite func_get_args rimuovendo però il primo elemento, che cicli l'array passandoci su il mysql_real_escape_string ed infine che lanci la query utilizzando vsprintf.

Usando questo sistema siete abbastanza al sicuro dalle sql injection perché qualunque parametro passate alla query viene sistemato senza dovrescrivere altro codice. Ovviamente è opportuno scrivere una funzione di escape che richiami il mysql_real_escape_string da usare quando non si possono usare i singoli parametri (che so, si sta costruendo una clausola where con IN ad esempio o si sta costruendo una join multipla)

Usare vsprintf permette anche di aggiungere ulteriori controlli perché è possibile formattare gli argomenti o forzarne il tipo (ad es se mi serve inserire una valuta in un campo posso usare %.02f, o se ho bisogno di aggiungere gli zeri davanti ad un valore interno posso usare %010d ... o se ho bisogno di inserire i parametri nella query che sono però posizionati con altro ordine ... %2$010d .... %1$.02f ... insomma c'è ne per tutti i gusti)

l'unica nota dolente è che vi dovete ricordare di raddoppiare i % quando li inserite altrimenti succede un gran casino

Riagganciandoci a prima, è importante che quest'operazione, ovvero la sostituzione di % con %% la effettui la funzione di escape senno il codice rischia di diventare vulnerabile (anche se poco) ma ancora di più di far dare errore che è fastidioso!