Il est nécessaire chaque fois que vous souhaitez envoyer des données au serveur contenant des caractères qui ne peuvent pas être représentés en ASCII pur, comme 'ñ' ou 'ö'.
Que si l'instance MySQL n'est pas configurée pour attendre le codage UTF-8 par défaut des connexions client (beaucoup le sont, selon votre emplacement et votre plate-forme.)
Lire http://www.joelonsoftware.com/articles/Unicode.html au cas où vous ne seriez pas au courant du fonctionnement d'Unicode.
Lire Si utiliser "SET NAMES" pour voir les alternatives de SET NAMES et de quoi il s'agit exactement.