sql >> Databáze >  >> RDS >> Mysql

Použití php filter_var s mysql_real_escape_string

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.



  1. SQL Server – Odeberte všechny netisknutelné znaky ASCII

  2. MariaDB ROUND() vs. FLOOR()

  3. T-SQL vs SQL

  4. WampServer - mysqld.exe nelze spustit, protože chybí MSVCR120.dll