Saltar al contenido

Escape de comillas simples en PHP al insertar en MySQL

Luego de tanto batallar hemos dado con el resultado de este enigma que agunos usuarios de esta web han tenido. Si quieres aportar algún detalle puedes dejar tu información.

Solución:

Debería escapar de cada una de estas cadenas (en ambos fragmentos) con mysql_real_escape_string().

http://us3.php.net/mysql-real-escape-string

La razón por la que sus dos consultas se comportan de manera diferente es probablemente porque tiene magic_quotes_gpc encendido (que debe saber que es una mala idea). Esto significa que las cadenas recopiladas de $_GET, $_POST y $_COOKIES se escapan para usted (es decir, "O'Brien" -> "O'Brien").

Una vez que almacene los datos, y luego los recupere nuevamente, el string vuelves de la base de datos no ser automáticamente escapado para usted. volverás "O'Brien". Entonces, tendrás que pasarlo mysql_real_escape_string().

Para cualquiera que encuentre esta solución en 2015 y siga adelante…

los mysql_real_escape_string() La función está en desuso a partir de PHP 5.5.0.

Ver: php.net

Advertencia

Esta extensión está obsoleta a partir de PHP 5.5.0 y se eliminará en el futuro. En su lugar, se debe utilizar la extensión MySQLi o PDO_MySQL. Consulte también MySQL: elección de una guía de API y preguntas frecuentes relacionadas para obtener más información. Las alternativas a esta función incluyen:

mysqli_real_escape_string()

PDO::quote()

Deberías hacer algo como esto para ayudarte a depurar

$sql = "insert into blah values ('$myVar')";
echo $sql;

Probablemente encontrará que la comilla simple se escapa con una barra invertida en la consulta de trabajo. Esto podría haberlo hecho automáticamente PHP a través de la configuración magic_quotes_gpc, o tal vez lo haya hecho usted mismo en alguna otra parte del código (addslashes y stripslashes pueden ser funciones para buscar).

Ver Cotizaciones mágicas

Si entiendes que te ha sido de utilidad nuestro post, nos gustaría que lo compartas con otros seniors así nos ayudas a difundir esta información.

¡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 *