Sei tu che hai chiesto "se ha senso o mi sto complicando solo la vita". La risposta e' che no, non ha senso, se poi ti va bene lo stesso e' un altro discorso.
Il motivo per cui non ha senso pero' e' piu' profondo e non riguarda sintassi o funzioni specifiche. Il punto e' che se l'utente invia dati e non comandi (cioe' NON stai riscrivendo phpmyadmin), allora bisogna trattare tutto cio' che ti invia come un dato. Per evitare SQL injections c'e' uno strumento efficace al 100% senza sbattimenti, e cioe' i prepared statements. I prepared statements consistono in parole povere nel separare query e dati, in modo che sia impossibile che i dati vadano a modificare la query stessa.
Quindi analizzare il testo di input ed eliminare manualmente cose come INSERT, DELETE, DROP eccetera, e' fatica sprecata nonche' un procedimento passibile di errore (magari ti dimentichi qualcosa), quando invece c'e' come alternativa uno strumento che risolve il problema alla perfezione.
L'unica cosa che hai come principiante e' una incorretta percezione della complessita'. Studiarti PDO e i prepared statements e' molto piu' semplice che scrivere un'assurda funzione come quella sopra, e' una soluzione infinitamente migliore, ed e' un investimento preziosissimo per la tua conoscenza.
L'errore che tutti i principianti commettono (che e' sicuramente colpa di vecchie guide obsolete scritte da altri principianti che si credevano esperti) e' quello di creare le stringhe delle query mescolandoci i dati dell'utente, esempio:
il problema qui non e' non aver fatto l'escape dei valori, il problema e' che LA STRINGA DELLA QUERY NON DEVE CONTENERE DATI PASSATI DALL'UTENTE, in nessun caso e in nessuna forma.Codice PHP:
$email = $_POST['email'];
$name = $_POST['name'];
$sql = "INSERT INTO utenti (email, name) VALUES ($email, $name)";