mixed quoteSmart (
mixed $in
)
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é.
l'entrée à échapper
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.
This function can not be called statically.
La fonction est disponible depuis la version 1.6.0.
Exemple avec quoteSmart()
<?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);
?>