sql >> Database teknologi >  >> RDS >> Mysql

mysql_escape_string hele post array?

Jeg ville bruge array_walk() fungere. Det er bedre egnet, fordi det modificerer POST superglobal, så enhver fremtidig brug bliver renset.

array_walk_recursive( $_POST, 'mysql_real_escape_string' );

Sørg dog for, at du ikke stoler på denne linje for fuldstændigt at beskytte din database mod angreb. Den bedste beskyttelse er at begrænse tegnsæt for visse felter. Eks. E-mails har ikke anførselstegn (så tillad kun bogstaver, tal, @, bindestreger osv.), og navne har ikke parenteser i dem (så tillad kun bogstaver og udvalgte specialtegn)

EDIT: Ændrede array_walk() til array_walk_recursive() takket være @Johans forslag. Rekvisitter til ham.



  1. NÅR SQLERROR aldrig virker

  2. Problem med MySQL-konvertering af tegnsæt

  3. Forespørgsel for at kontrollere, om feltet eksisterer, og returner derefter resultatsættet

  4. Hvorfor er visse typer forberedte forespørgsler ved hjælp af PDO i PHP med MySQL langsomme?