Forum und email

mysqli_real_escape_string

mysqli->real_escape_string

(PHP 5)

mysqli->real_escape_string — Protege caracteres especiales en una cadena para ser usada en una sentencia SQL, tomando en cuenta el conjunto de caracteres para la conexión

Descripción

Estilo por procedimientos:

cadena mysqli_real_escape_string ( mysqli $identificador_de_enlace , cadena $escapestr )

Estilo orientado a objetos (método):

mysqli
cadena real_escape_string ( cadena $escapestr )

Esta función es usada para crear una cadena SQL legal que se puede usar en una sentencia SQL. La cadena escapestr está codificada para una cadena SQL protegida, tomando en cuenta el conjunto de caracteres actual para la conexión.

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

Valores retornados

Regresa una cadena protegida.

Ejemplos

Example#1 Estilo orientado a objetos

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

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

$city "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    
printf("Error: %s\n"$mysqli->sqlstate);
}

$city $mysqli->real_escape_string($city);

/* this query with escaped $city will work */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    
printf("%d Row inserted.\n"$mysqli->affected_rows);


$mysqli->close();
?>

Example#2 Estilo por procedimientos

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TEMPORARY TABLE myCity LIKE City");

$city "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!mysqli_query($link"INSERT into myCity (Name) VALUES ('$city')")) {
    
printf("Error: %s\n"mysqli_sqlstate($link));
}

$city mysqli_real_escape_string($link$city);

/* this query with escaped $city will work */
if (mysqli_query($link"INSERT into myCity (Name) VALUES ('$city')")) {
    
printf("%d Row inserted.\n"mysqli_affected_rows($link));


mysqli_close($link);
?>

El resultado del ejemplo seria:

Error: 42000
1 Row inserted.