Dezinfekce řetězec slouží k tomu, aby odpovídal určitým očekáváním. FILTER_SANITIZE_EMAIL
odstraní z řetězce všechny znaky, které by byly v e-mailu neplatné. Výsledek je (prý) zaručen v souladu se syntaxí e-mailové adresy. Jak užitečné je náhodné odebírání znaků z řetězce nechám na vás. (Nápověda:Nemyslím si, že je to vůbec užitečné; neplatné adresy byste měli raději odmítnout, než je transformovat na náhodné výsledky. Dám vám neplatnou e-mailovou adresu, vrazíte ji do nějakého tvaru, který se podobá e-mailové adrese, teď jak víte, že mi budete moci poslat e-mail...?!)
mysql_real_escape_string
existuje, aby zajistil, že libovolný řetězec neporuší doslovnou syntaxi řetězce SQL tím, že escapuje všechny znaky vhodné pro únik. Za předpokladu, že jej používáte správně (má mysql spoustu úskalí, a proto je zastaralý...), nemůžete s jeho vstupem udělat nic, co by způsobilo jeho selhání. Zadáte-li mu libovolný řetězec, vrátí vám escapovanou verzi, tečku.
Jako takové obecně ano, to, co děláte, je v pořádku. Pokud mysql_real_escape_string
je poslední věc, kterou uděláte se svým řetězcem, než jej interpolujete do řetězcového literálu SQL, pak je to v pořádku.