A parte l'md5() e il fatto che quella guida non si cura minimamente dei rischi di SQL injection, il resto mi sembra vada bene.
Comunque invece degli escape, suggerirei di interagire col database tramite PDO eliminando quindi il problema di injection alla radice.