BindValue() : Paramètre data_type sans effet ?
Salut à tous :D
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:
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 :calim2:
Exemple :
Code:
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. :aie:
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 ;)