¿Cómo debo almacenar nuevas líneas en una base de datos MySQL?

Estoy dando vueltas y vueltas en mi mente tratando de decidir la mejor manera de almacenar nuevas líneas en una base de datos MySQL.

Un poco de fondo; se le pide al usuario que complete un área de texto. Esto tiene que almacenarse en una base de datos MySQL antes de volver a leerse y el contenido se incluye en un correo electrónico HTML.

¿Debería almacenarlos como:

1) Literalmente, esto es una práctica peligrosa y mala

2) Como una cadena con \r\n en – cuando leo esta parte de la base de datos se lee como 4 caracteres, por lo que nl2br() no puede reemplazarlos correctamente.

3) Como HTML
– como tiene que ser una entidad html codificada para ser almacenada, termina siendo almacenada como <br /> así que cuando se trata del correo electrónico
se imprime en lugar de una nueva línea real. html_entity_decode() través de html_entity_decode() decodificará otros caracteres que necesitan ser codificados.

Cualquier ayuda gratamente apreciada.

Guárdalo como está, pero escapa primero . Esta es su opción 1. Cuando necesite presentar esta información, aplique la función que necesite para formatearla. Si necesita mostrarlo en HTML, use las nl2br() y htmlentities() . Eso funcionará también para el correo.

Si tiene datos de área de texto como este,

 $text="Hello Sir, I am Robert'); Drop table students; -- ..... Yours most obedient pupil ....."; 

Simplemente guárdelo tal como está después de que lo haya escapado, o use una statement preparada.

 $text = $mysqli->real_escape_string($text); 

use la función de reemplazo de cadena de javascript str.replace(/\n/g,'\\n')

para transformar todas las líneas nuevas en literales escapados en el área de texto mientras se forma la url o cadena de publicaciones.

Recuperar el mismo utilizando json_encode() de PHP json_encode() y mostrarlo a través de un área de texto funciona bien para mí.

Depende del tipo de aplicación (cómo desea mostrar su texto).

Si se trata de un editor de correo electrónico HTML, creo que el formato html será mejor.

En la mayoría de los CMS (sistemas de gestión de contenido) se utiliza el formato HTML (joomla, wordpress, prestashop, etc.), ya que puede leerlo desde la base de datos y enviarlo al navegador.

Además, es probable que necesites otras tags HTML de todos modos (como para negrita o

).

Creo que usar el formato \r\n es mejor para aplicaciones que no son web, cuando los datos se muestran en los controles de formulario de Windows.

Una cosa más: puede almacenarlos de las dos maneras: –
para la vista HTML – \r\n para la fuente HTML (para agregar algunas líneas nuevas y crear un código fuente html más legible)

Por html más legible me refiero a esto:

 
This is header

This is paragraph.
Second line.

En lugar de esto:

 
This is header

This is paragraph.
Second line.