Récupération de types numériques dans MySQL avec PDO
Récupérer des types numériques à partir de MySQL à l'aide de PDO peut être difficile en raison du comportement par défaut des représentations sous forme de chaîne renvoyées au lieu de valeurs numériques.
PDO::ATTR_STRINGIFY_FETCHES Attribut
La classe PDO propose l'attribut PDO::ATTR_STRINGIFY_FETCHES pour contrôler la conversion des valeurs numériques en chaînes. Cependant, cet attribut n'est pas pris en charge pour le pilote MySQL.
Désactivation de l'émulation des instructions préparées
Pour récupérer correctement les types numériques, vous devez désactiver l'émulation des instructions préparées à partir de PDO. Ceci peut être réalisé en définissant PDO::ATTR_EMULATE_PREPARES sur false lors de la création de l'objet PDO :
$pdo = new PDO($dsn, $user, $pass, [ PDO::ATTR_EMULATE_PREPARES => false, ]);
Avec l'émulation d'instruction préparée désactivée, PHP utilisera les types de données MySQL natifs, y compris les types numériques. Désormais, les valeurs int récupérées de la base de données ne seront plus converties en chaînes.
Conclusion
Pour garantir une gestion cohérente des types numériques, il est recommandé de désactiver les instructions préparées. émulation lorsque vous travaillez avec PDO et MySQL. Ce faisant, vous pouvez récupérer de manière fiable des valeurs numériques dans leur véritable format, améliorant ainsi la précision et la convivialité de votre traitement de données.
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!