PDO : Récupération de types numériques à partir de MySQL
Lors de l'accès aux bases de données MySQL à l'aide de PDO, vous pouvez rencontrer un problème où les valeurs numériques de la base de données sont étant renvoyé sous forme de chaînes. Cela peut être problématique pour les calculs numériques et le traitement des données.
Cause : comportement par défaut de PDO
Par défaut, PDO récupère toutes les données sous forme de chaînes, quel que soit leur type réel dans la base de données. Ceci est fait pour des raisons de flexibilité et de compatibilité, car toutes les bases de données ne prennent pas en charge le typage de données natif.
Solution : désactiver la stringification
Pour empêcher PDO de convertir des valeurs numériques en chaînes, vous pouvez désactiver l'option de stringification. Cependant, cette fonctionnalité n'est pas prise en charge par le pilote MySQL.
Utiliser des instructions préparées
Une approche plus fiable consiste à utiliser des instructions préparées, qui vous permettent de spécifier les données types des valeurs récupérées. Cela garantit que les valeurs numériques sont renvoyées sous forme de types de données numériques. Pour désactiver l'émulation des instructions préparées et forcer MySQL à renvoyer les types de données natifs :
$pdo = new PDO($dsn, $user, $pass, [ PDO::ATTR_EMULATE_PREPARES => false ]);
Conclusion
Pour obtenir des types numériques à partir de MySQL à l'aide de PDO, il est recommandé d'utiliser instructions préparées et désactivez l'émulation des instructions préparées. Cela garantit que les valeurs numériques sont renvoyées dans leurs types de données numériques appropriés.
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!