Lo farebbe a meno che tu non includa virgolette singole nel name pubblicato , che ti permetterebbe di rompere le virgolette. Esempio, pubblica il nome come:
' or 1 or '
La clausola WHERE diventa:
WHERE id = '' or 1 or '';
Ciò corrisponderebbe e recupererebbe tutte le righe nella tabella a causa di or 1 parte. Come puoi vedere, esce dalle virgolette per iniettare un po' di SQL, quindi torna tra le virgolette per rendere valida la query.
No, ma se è stato eseguito con mysqli_multi_query allora sì, potresti aggiungere più query alla fine.
Generalmente sì, ma una dichiarazione preparata sarebbe meglio. Usando l'escape, il WHERE la clausola diventerebbe (usando il mio esempio sopra):
WHERE id = '\' or 1 or \'';
Questo non è più vulnerabile perché le virgolette non possono essere separate e corrisponderebbero alle righe solo se il name corrisponde letteralmente a ' or 1 or ' il che è ovviamente improbabile.