sql >> Databasteknik >  >> RDS >> Mysql

PHP &mySQL:När exakt ska man använda htmlentities?

Här är den allmänna tumregeln.

Du vill att dina variabler ska vara rena representationer av data. Det vill säga, om du försöker lagra efternamnet på någon som heter "O'Brien", så gör du definitivt inte vill ha dessa:

O'Brien
O\'Brien

.. för, ja, det är inte hans namn:det finns inga et-tecken eller snedstreck i den. När du tar den variabeln och matar ut den i ett visst sammanhang (t.ex. infogar i en SQL-fråga eller skriver ut till en HTML-sida), det är när du ändrar den.

$name = "O'Brien";

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

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

Du vill aldrig ha htmlentities -kodade strängar lagrade i din databas. Vad händer när du vill skapa en CSV eller PDF, eller något som inte är HTML?

Håll informationen ren och undvik bara för ögonblickets specifika sammanhang.



  1. Skala PostgreSQL med Connection Poolers &Load Balancers

  2. Hämta java.sql.SQLException:Operation inte tillåten efter att ResultSet stängts

  3. importera en CSV till phpmyadmin

  4. Varför kan easy_install inte hitta MySQLdb?