PDO::quote

(no version information, might be only in CVS)

PDO::quote --  Protège une chaîne pour l'utiliser dans une requête SQL PDO

Description

string PDO::quote ( string string [, int parameter_type] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

PDO::quote() place des guillemets simples autour d'une chaîne d'entrée et échappe les guillemets simples présents dans la chaîne d'entrées. La chaîne ainsi quotée est une manière commune de prévenir les attaques par injection SQL ; Cependant, une manière plus sûr est d'utiliser les requête préparées avec des paramètres nommés ou des marqueurs pour les valeurs d'entrées.

Tous les drivers PDO n'implémentent pas cette méthode.

Liste de paramètres

string

La chaîne à échapper.

parameter_type

Fournit un type de données pour les drivers qui ont des styles alternatifs d'échappement. La valeur par défaut est PDO_PARAM_STR.

Valeurs de retour

Retourne une chaîne échappée qui est théoriquement sûr à passer dans une requête SQL.

Exemples

Exemple 1. Echappement d'une chaîne normale

<?php
$conn
= new PDO('sqlite:/home/lynn/music.sql3');

/* Chaîne simple */
$string = 'Nice';
print
"Chaîne non échappée : $string\n";
print
"Chaîne échappée : " . $conn->quote($string) . "\n";
?>

L'exemple ci-dessus va afficher :

Chaîne non échappée : Nice
Chaîne échappée: 'Nice'

Exemple 2. Echappement d'une chaîne dangereuse

<?php
$conn
= new PDO('sqlite:/home/lynn/music.sql3');

/* Chaîne dangereuse */
$string = 'Chaîne \' particulière';
print
"Chaîne non échappée : $string\n";
print
"Chaîne échappée :" . $conn->quote($string) . "\n";
?>

L'exemple ci-dessus va afficher :

Chaîne non échappée : Chaîne ' particulière
Chaîne échappée : 'Chaîne '' particulière'

Exemple 3. Echappement d'une chaîne complexe

<?php
$conn
= new PDO('sqlite:/home/lynn/music.sql3');

/* Chaîne complexe */
$string = "Co'mpl''exe \"ch'\"aîne";
print
"Chaîne non échappée: $string\n";
print
"Chaîne échappée : " . $conn->quote($string) . "\n";
?>

L'exemple ci-dessus va afficher :

Chaîne non échappée: Co'mpl''exe "ch'"aîne
Chaîne échappée: 'Co''mpl''''exe "ch''"aîne'

Voir aussi

PDO::prepare()
PDOStatement::execute()