Salut à tous

Je me pose la question de l'utilité du 3ème paramètre qu'attend la méthode BindValue() (et BindParam() aussi) qui est une constante définissant le type de donnée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
bool PDOStatement::bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] )
Cependant, j'ai beau faire des essai en indiquant explicitement le "type", j'ai l'impression que cela n'a strictement aucun effet

Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$sStmt = $db->prepare('UPDATE table SET une_chaine = :chaine');
$sStmt->bindValue(':chaine', 'Une chaine', PDO::PARAM_INT);
$sStmt->execute();
Je m'attendais à une sorte de typage, que PDO transtyperait cette donnée, et comme c'est une chaine, 0 serait retournée, enregistrée.
Où alors, un retour d'erreur, une exception serait déclenchée du faite d'une donnée non conforme au type.
Mais non ... rien.

Du coup, que je mette PARAM_INT, PARAM_NULL, PARAM_LOB, PARAM_BOOL ... les modifs ont lieu, comme si de rien était.

Pourquoi donc il y a rien qui se passe ?
Est ce lié à la base de donnée ? (J'ai fait cet essai que sur MySQL)
Au moteur MySQL ? (des essais que sur MyISAM)
Ou alors c'est juste là pour qu'on l'exploite soit même ?


Merci pour toutes explications