Función PHP mysqli real_escape_string()
Ejemplo: estilo orientado a objetos
Escape de caracteres especiales en cadenas:
<?php
$mysqli = new mysqli("localhost","my_user","my_password","my_db");
if ($mysqli -> connect_errno) {
echo "Failed to connect to MySQL: " .
$mysqli -> connect_error;
exit();
}
// Escape special characters, if any
$firstname = $mysqli -> real_escape_string($_POST['firstname']);
$lastname = $mysqli -> real_escape_string($_POST['lastname']);
$age =
$mysqli -> real_escape_string($_POST['age']);
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')";
if (!$mysqli -> query($sql)) {
printf("%d Row inserted.\n", $mysqli->affected_rows);
}
$mysqli -> close();
?>
Mire el ejemplo de estilo procedimental en la parte inferior.
Definición y uso
La función real_escape_string() / mysqli_real_escape_string() escapa caracteres especiales en una cadena para usar en una consulta SQL, teniendo en cuenta el juego de caracteres actual de la conexión.
Esta función se usa para crear una cadena SQL legal que se puede usar en una declaración SQL. Supongamos que tenemos el siguiente código:
<?php
$lastname = "D'Ore";
$sql="INSERT INTO Persons (LastName) VALUES ('$lastname')";
// This query will fail, cause we didn't escape $lastname
if (!$mysqli -> query($sql)) {
printf("%d Row inserted.\n", $mysqli->affected_rows);
}
?>
Sintaxis
Estilo orientado a objetos:
$mysqli ->
real_escape_string(escapestring)
Estilo procesal:
mysqli_real_escape_string(connection, escapestring)
Valores paramétricos
Parameter | Description |
---|---|
connection | Required. Specifies the MySQL connection to use |
escapestring | Required. The string to be escaped. Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z. |
Detalles técnicos
Valor devuelto: | Devuelve la cadena escapada |
---|---|
Versión PHP: | 5+ |
Ejemplo: estilo de procedimiento
Escape de caracteres especiales en cadenas:
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
// Escape special characters, if any
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')";
if (!mysqli_query($con, $sql))
{
printf("%d Row inserted.\n", mysqli_affected_rows($con));
}
mysqli_close($con);
?>
❮ Referencia PHP MySQLi