PHP mysqli real_escape_string() Fonction

❮ Référence PHP MySQLi

Exemple - Style orienté objet

Échapper les caractères spéciaux dans les chaînes :

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

if ($mysqli -> connect_errno) {
echo "Échec de la connexion à MySQL : " . $mysqli -> connect_error;
exit();
}

// Échapper les caractères spéciaux, le cas échéant
$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 Ligne insérée.\n", $mysqli->affected_rows);
}

$mysqli -> close();
?>

Consultez l'exemple de style procédural en bas.


Définition et Utilisation

La fonction real_escape_string() / mysqli_real_escape_string() échappe les caractères spéciaux dans une chaîne pour une utilisation dans une requête SQL, en tenant compte de l'ensemble de caractères actuel de la connexion.

Cette fonction est utilisée pour créer une chaîne SQL valide qui peut être utilisée dans une instruction SQL. Supposons que nous ayons le code suivant :

<?php

$lastname = "D'Ore";

$sql="INSERT INTO Persons (LastName) VALUES ('$lastname')";

// Cette requête échouera, car nous n'avons pas échappé $lastname
if (!$mysqli -> query($sql)) {
printf("%d Ligne insérée.\n", $mysqli->affected_rows);
}

?>

Syntaxe

Style orienté objet :

$mysqli -> real_escape_string( escapestring )

Style procédural :

mysqli_real_escape_string( connection, escapestring )

Valeurs des Paramètres

Paramètre Description
connection Requis. Spécifie la connexion MySQL à utiliser
escapestring Requis. La chaîne à échapper. Les caractères encodés sont NUL (ASCII 0), \n, \r, \, ', ", et Control-Z.

Détails Techniques

Valeur de Retour : Renvoie la chaîne échappée
Version PHP : 5+

Exemple - Style procédural

Échapper les caractères spéciaux dans les chaînes :

<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");

if (mysqli_connect_errno()) {
echo "Échec de la connexion à MySQL : " . mysqli_connect_error();
exit();
}

// Échapper les caractères spéciaux, le cas échéant
$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 Ligne insérée.\n", mysqli_affected_rows($con));
}

mysqli_close($con);
?>

❮ Référence PHP MySQLi