The exact characters that are escaped by this function are the null byte (0), newline (\n), carriage return (\r), backslash (\), single quote ('), double quote (") and substiture (SUB, or \032).
mysql_escape_string
(PHP 4 >= 4.0.3, PHP 5)
mysql_escape_string — Escapa una cadena para ser usada en mysql_query
Descripción
$unescaped_string
)
Esta función escapará unescaped_string,
para que sea seguro ponerlo en una mysql_query().
Esta función está en obsoleta.
Esta función es idéntica a mysql_real_escape_string() excepto que mysql_real_escape_string() toma un manejador de conexión y escapa la cadena de acuerdo con el juego de carácteres en curso. mysql_escape_string() no hace falta que sea un argumento de la conexión y no respeta la configuración del juego de caracteres en curso.
Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.
Parámetros
-
unescaped_string -
La cadena que va a ser escapada.
Valores devueltos
Devuelve la cadena escapada.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.3.0 | Ahora, esta función lanza un aviso E_DEPRECATED. |
| 4.3.0 | Esta función será eliminada, no la utilice. En su lugar utilice mysql_real_escape_string(). |
Ejemplos
Ejemplo #1 Ejemplo con mysql_escape_string()
<?php
$item = "Zak's Laptop";
$escaped_item = mysql_escape_string($item);
printf("Escaped string: %s\n", $escaped_item);
?>
El resultado del ejemplo sería:
Escaped string: Zak\'s Laptop
Notas
Nota: Alternativas sugeridas
El uso de esta función está desaconsejado. En su lugar debería usarse la extensión MySQLi o PDO_MySQL. Véase también MySQL: escoger una API para más información.
Las alternativas a esta función incluyen:
Nota:
mysql_escape_string() no escapa los caracteres % y _.
Ver también
- mysql_real_escape_string() - Escapa caracteres especiales en una cadena para ser usado en una sentencia SQL
- addslashes() - Añade barras invertidas a una cadena
- La directiva magic_quotes_gpc.
it seems the function changes the character encoding of the string.
I get utf-8 encoded string and my mysql database is set to utf-8 as well.
If i just write the data to the database it works perfectly fine, if i use this function, it changes the encoding and therefore stores the wrong characters.
Seems like a bug to me.
