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

PHP &mySQL:Hvornår skal man helt præcist bruge htmlentities?

Her er den generelle tommelfingerregel.

Du ønsker, at dine variabler skal være rene repræsentationer af dataene. Det vil sige, at hvis du forsøger at gemme efternavnet på en person ved navn "O'Brien", så gør du det bestemt ikke ønsker disse:

O'Brien
O\'Brien

.. fordi, ja, det er ikke hans navn:der er ingen og-tegn eller skråstreger i det. Når du tager den variabel og udskriver den i en bestemt kontekst (f.eks.:indsætte i en SQL-forespørgsel eller udskrive til en HTML-side), at er, når du ændrer det.

$name = "O'Brien";

$sql = "SELECT * FROM people "
     . "WHERE lastname = '" . mysql_real_escape_string($name) . "'";

$html = "<div>Last Name: " . htmlentities($name, ENT_QUOTES) . "</div>";

Du vil aldrig have htmlentities -kodede strenge gemt i din database. Hvad sker der, når du vil generere en CSV eller PDF, eller noget, der ikke er HTML?

Hold dataene rene, og undslip kun for øjeblikkets specifikke kontekst.



  1. Håndtering af din MS SQL-replikering

  2. få en kommasepareret streng fra rækker

  3. Hurtigste måde at opdatere 120 millioner poster på

  4. Eksempel på SQL Servers sys.dm_sql_referenced_entities() Returnerer en enhed, der refererer til en linket server