Saltar al contenido

Mysql + php con caracteres especiales como ‘(apóstrofo) y “(comillas)

Solución:

Su cadena sql será:

INSERT INTO `table` (`row1`) VALUES ('google's site')

Lo cual no es una afirmación válida. Como escribió Nanne, escape la cadena al menos con mysql_real_escape_string: http://php.net/manual/en/function.mysql-real-escape-string.php

Y lea sobre la inyección de SQL http://en.wikipedia.org/wiki/SQL_injection

Piensa un poco: si alguien publica esto: $_POST['text'] con valor: ');delete from table;....

Puedes despedirte de tus datos 🙂

¡Siempre filtrar / escapar de la entrada!

EDITAR: A partir de PHP 5.5.0, mysql_real_escape_string y la extensión mysql están en desuso. Utilice la extensión mysqli y la función mysqli :: escape_string en su lugar

Siempre use al menos mysql_real_escape_string cuando agregue valores proporcionados por el usuario en la base de datos. Debe buscar en los parámetros de enlace o mysqli para que su consulta se convierta en:

INSERT INTO `table` (`row1`) VALUES (?)

Y ? sería reemplazado por el valor real después de desinfectar la entrada.

En su caso utilice:

$result = mysql_query("INSERT INTO `table` (`row1`) VALUES ('".mysql_real_escape_string($_POST['text'])."') ") or die(mysql_error());

Lea sobre la inyección de SQL. ¡Vale la pena hacerlo bien lo antes posible!

Escapar de la cuerda: D

http://php.net/manual/en/function.mysql-real-escape-string.php

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *