Formatte une entrée pour être utilisée de façon sécurisée dans une requête.
L'entrée peut être une chaîne de caractères ou des nombres à utiliser dans
les clauses WHERE, SET
et VALUES des requêtes SQL.
Le format retourné dépend du type PHP de l'entrée et du type de base de données
utilisé.
Paramètres
mixed
$in
l'entrée à échapper
Valeur retournée
mixed - la donnée formattée
Le format du résultat dépend du type PHP de l'entrée :
Entrée -> résultat
NULL -> la chaîne de caractères NULL
integer ou float -> le nombre, non échappé
boolean -> le résultat dépend du driver utilisé
La plupart des drivers retourne des entiers : 1 si
true ou 0 si
false.
Quelques uns retournent des chaînes de caractères :
TRUE si true ou
FALSE si false.
Finalement, un seul retourne des chaînes de caractères :
T si true ou
F si false.
Voici une liste de chaque DBMS, la valeur retournée
et le type de colonne suggéré :
dbase -> T/F
(Logical)
fbase -> TRUE/FALSE
(BOOLEAN)
ibase -> 1/0
(SMALLINT) [1]
ifx -> 1/0
(SMALLINT) [1]
msql -> 1/0
(INTEGER)
mssql -> 1/0
(TINYINT)
mysql -> 1/0
(TINYINT(1))
mysqli -> 1/0
(TINYINT(1))
oci8 -> 1/0
(NUMBER(1))
odbc -> 1/0
(SMALLINT) [1]
pgsql -> TRUE/FALSE
(BOOLEAN)
sqlite -> 1/0
(INTEGER)
sybase -> 1/0
(TINYINT)
[1] Adaptez au plus bas dénominateur commun car
toutes les versions non pas forcément de
BOOLEAN.
autre (incluant les chaînes de caractères ainsi que les chaînes numériques)
-> une chaîne qui a été échappée d'une façon spécifique au DBMS
(en utilisant la fonction
escapeSimple()) et ensuite, entourée par
des simples guillemets
Note
Cette fonction ne peut pas être appelée de façon statique.
La fonction est disponible depuis : La version 1.6.0
<?php
// Vous devez avoir un objet DB valide nommé $db...
$name = "all's well";
$active = true;
$sql = 'SELECT * FROM clients WHERE name = '
. $db->quoteSmart($name)
. ' AND active = '
. $db->quoteSmart($active);
$res =& $db->query($sql);
?>