Manuel PHP
Précédent |  | Suivant

# mysqli_real_escape_string

(PHP 5)

mysqli_real_escape_string

(no version information, might be only in CVS)

mysqli->real_escape_string -- Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion

## Description

Style procédural

string mysqli_real_escape_string ( mysqli link, string escapestr )

Style orienté objet (méthode)

class mysqli {
string escape_string ( string escapestr )
string real_escape_string ( string escapestr )
}

mysqli_real_escape_string() est utilisée pour créer une chaîne SQL valide qui pourra être utilisée dans une requête SQL. La chaîne de caractères escapestr est encodée en une chaîne SQL échappée, en tenant compte du jeu de caractères courant de la connexion.

Les caractères encodés sont NUL (ASCII 0), \n, \r, \, ', ", et Control-Z.

## Valeurs de retour

Retourne une chaîne échappée.

## Exemples

Exemple 1. Style orienté objet

`<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %s\n", mysqli_connect_error());
exit();
}
$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");
$city = "'s Hertogenbosch";
/* cette requête échoue car nous n'avons pas échappé $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
printf("Erreur : %s\n", $mysqli->sqlstate);
}
$city = $mysqli->real_escape_string($city);
/* cette requête, par contre, réussira car nous avons échappé $city */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
printf("%d ligne insérée.\n", $mysqli->affected_rows);
}
$mysqli->close();
?>`

Exemple 2. Style procédural

`<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %s\n", mysqli_connect_error());
exit();
}
mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");
$city = "'s Hertogenbosch";
/* cette requête échoue car nous n'avons pas échappé $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);
/* cette requête réussira car nous avons échappé $city */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
printf("%d ligne insérée.\n", mysqli_affected_rows($link));
}
mysqli_close($link);
?>`

L'exemple ci-dessus va afficher :

    Erreur : 42000
    1 ligne insérée.

## Voir aussi

mysqli_character_set_name().

Précédent | Sommaire | Suivant
mysqli_real_connect | Niveau supérieur | mysqli_real_query