sql >> Base de Datos >  >> RDS >> Mysql

PHP y mySQL:¿Cuándo exactamente usar htmlentities?

Esta es la regla general.

Desea que sus variables sean representaciones limpias de los datos. Es decir, si está tratando de almacenar el apellido de alguien llamado "O'Brien", definitivamente no Quiero estos:

O'Brien
O\'Brien

.. porque, bueno, ese no es su nombre:no hay signos de unión ni barras en él. Cuando toma esa variable y la genera en un contexto particular (p. ej., inserta en una consulta SQL o imprime en una página HTML), eso es cuando lo modificas.

$name = "O'Brien";

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

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

Nunca querrás tener htmlentities -Cadenas codificadas almacenadas en su base de datos. ¿Qué sucede cuando desea generar un archivo CSV o PDF, o cualquier cosa que no lo sea? HTML?

Mantenga los datos limpios y solo escape para el contexto específico del momento.