mysqli::real_escape_string

mysqli_real_escape_string

(PHP 5, PHP 7, PHP 8)

mysqli::real_escape_string -- mysqli_real_escape_stringEscapa los caracteres especiales de una cadena para usarla en una sentencia SQL, tomando en cuenta el conjunto de caracteres actual de la conexión

Descripción

Estilo orientado a objetos

mysqli::real_escape_string(string$escapestr): string

Estilo por procedimientos

mysqli_real_escape_string(mysqli$link, string$escapestr): string

Esta función se usa para crear una cadena SQL legal que se puede usar en una sentencia SQL. La cadena dada es codificada a una cadena SQL escapada, tomando en cuenta el conjunto de caracteres actual de la conexión.

Precaución

Seguridad: el conjunto de caracteres predeterminado

El conjunto de caracteres debe ser establecido a nivel del servidor, o con la función mysqli_set_charset() de la API para que afecte a mysqli_real_escape_string(). Véase la sección de conceptos sobre conjuntos de caracteres para más información.

Parámetros

link

Sólo estilo por procediminetos: Un identificador de enlace devuelto por mysqli_connect() o mysqli_init()

escapestr

La cadena a escapar.

Los caracteres codificados son NUL (ASCII 0), \n, \r, \, ', ", y Control-Z.

Valores devueltos

Devuelve una cadena escapada.

Ejemplos

Ejemplo #1 Ejemplo de mysqli::real_escape_string()

Estilo orientado a objetos

<?php
$mysqli
= new mysqli("localhost", "mi_usuario", "mi_contraseña", "world");


if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}

$mysqli->query("CREATE TEMPORARY TABLE miCiudad LIKE City");

$ciudad = "'s Hertogenbosch";


if (!$mysqli->query("INSERT into miCiudad (Name) VALUES ('$ciudad')")) {
printf("Error: %s\n", $mysqli->sqlstate);
}

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


if ($mysqli->query("INSERT into miCiudad (Name) VALUES ('$ciudad')")) {
printf("%d fila insertada.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Estilo por procedimientos

<?php
$enlace
= mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "world");


if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}

mysqli_query($enlace, "CREATE TEMPORARY TABLE miCiudad LIKE City");

$ciudad = "'s Hertogenbosch";


if (!mysqli_query($enlace, "INSERT into miCiudad (Name) VALUES ('$ciudad')")) {
printf("Error: %s\n", mysqli_sqlstate($enlace));
}

$ciudad = mysqli_real_escape_string($enlace, $ciudad);


if (mysqli_query($enlace, "INSERT into miCiudad (Name) VALUES ('$ciudad')")) {
printf("%d fila insertada.\n", mysqli_affected_rows($enlace));
}

mysqli_close($enlace);
?>

El resultado de los ejemplos sería:

Error: 42000 1 fila insertada.

Notas

Nota:

Para quienes estén acostumbrados a usar mysql_real_escape_string(), se ha de observar que el argumento de mysqli_real_escape_string() difiere de lo que espera mysql_real_escape_string(). El identificador enlace va primero en mysqli_real_escape_string(), mientras que la cadena a escapar va primero en mysql_real_escape_string().

Ver también

To Top