Pour les requêtes préparées, avec PDO, on peut mettre en place, lors du binding des arguments, un filtrage sur le type attendu.

La documentation donne des exemples pour les méthodes


/* Exécution d'une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':couleur', $couleur, PDO::PARAM_STR, 12);
$sth->execute();

Que se passe-t-il lorsque j’envoie un mauvais type ?

PDO s’occupe de caster les variables pour qu’elles correspondent au type attendu.
avec PARAM_INT, si on propose une chaîne, elle devient la valeur 0
avec PARAM_STR, 15 (longueur max de chaîne), la chaîne est tronquée à 15 caractères.


Leave a Comment