Almacenamiento de comentarios y caracteres especiales o RTF en MySQL

2022-10-06 23:24:41

Tengo una pregunta relativamente simple.

Estoy diseñando un sistema de comentarios que funciona a través de PHP --> mysql, y cuando envío un comentario con un carácter especial, es decir. una comilla [']... arruina la consulta.

Obviamente, tengo que quitarlos para evitar la inyección y otras cosas, pero ¿cuál es la forma más fácil de analizar de un lado a otro entre enviar comillas y otros caracteres especiales como saltos de línea en una base de datos y luego analizarlo para que se muestre de la forma en que estaba? originalmente escrito? Es decir. Puedo colocar un párrafo un par de líneas más abajo...

.

Aquí abajo. La base de datos almacena esos saltos de línea adicionales. ¿Hay analizadores de PHP incorporados para esto o tengo que escribir uno de alguna manera?

- Vranvs

Source
zh
Responder


2
  • La extensión de PHP PDO hace esto bien, he vuelto a hacer PDO y lo he hecho mucho más fácil de usar porque puede ser un poco complejo, pero se pueden encontrar tutoriales y lo aprendí todo. en un día más o menos.

    Si desea comenzar con PDO, querrá hacer una conexión como esta:

    $handler = new PDO("mysql:host=HOST;dbname=DATABASE_NAME", DATABASE_USERNAME, DATABASE_PASSWORD);
    

    Y usando eso, el HOST puede ser un ejemplo localhost, DATABASE_NAME es obvio, nombre de usuario y contraseña, ¡estoy seguro de que puedes averiguarlo!

    Si desea utilizar una consulta de una matriz $_GET[''], puede hacerlo de la siguiente manera:

    $query = $handler->prepare("INSERT INTO users (username, password) VALUES (:user, :pass);
    $query->execute(array( 
      ':user' => $_GET['username'],
      ':pass' => $_GET['password']
    ));
    

    Lo que sucede aquí es que el nombre de usuario y la contraseña se asignan de manera segura a la consulta y luego se ejecutan en la instrucción $query->execute; no importa si hay un ' o un " en la URL.

    Si desea leer más sobre la biblioteca PDO, consulte aquí< /p>