Liaisons de paramètres PDO pour le type de données décimal
Lorsque vous travaillez avec un type de données décimal dans une base de données, vous pouvez rencontrer des problèmes lors de la mise à jour de sa valeur en utilisant les liaisons de paramètres PDO. Cet article explique la disponibilité de PDO::PARAM pour les données décimales et fournit des solutions de contournement pour lier et mettre à jour les valeurs décimales.
Liaisons de paramètres PDO
PDO (objets de données PHP) propose des mécanismes pratiques de liaison de paramètres qui vous permettent de transmettre des valeurs aux requêtes SQL de manière sécurisée et efficace. Pour différents types de données, PDO fournit diverses constantes de liaison de paramètres telles que PDO::PARAM_INT, PDO::PARAM_STR et autres.
En ce qui concerne les données décimales, il n'existe pas de type PDO::PARAM spécifique pour celles-ci. Vous pourriez instinctivement supposer que PDO::PARAM_INT devrait fonctionner pour des valeurs entières avec des décimales, mais ce n'est pas le cas.
Solution de contournement pour lier des valeurs décimales
La solution à la liaison les valeurs décimales dans PDO doivent utiliser PDO::PARAM_STR. Cette constante de liaison s'attend à ce que la valeur soit convertie en chaîne, ce qui convient aux décimales/flottants car ils sont stockés en interne sous forme de chaînes dans les bases de données.
Exemple de valeur décimale de liaison :
$update_decval->bindParam(':decval', $decval, PDO::PARAM_STR);
Avec cette modification, PDO traitera $decval comme une chaîne et mettra correctement à jour la décimale champ.
Pourquoi PDO::PARAM_STR pour les décimales ?
Bien que les décimales soient essentiellement des nombres, elles sont stockées sous forme de chaînes en interne dans les bases de données pour deux raisons :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!