Mysql
 sql >> Base de données >  >> RDS >> Mysql

PDO SQLSRV et PDO MySQL renvoient des chaînes lors de la récupération de int ou float

Avec PDO MySQL l'API C sous-jacente renvoie une structure de chaînes lors de l'appel de mysql_fetch_row() . Étant donné que PHP est un langage faiblement typé qui convertit automatiquement en entier si nécessaire, je soupçonne que les développeurs PDO ont choisi de les renvoyer tels quels. Ce serait plus rapide que de rechercher chaque type de colonne et de le convertir dynamiquement en entier/flottant.

En ce qui concerne spécifiquement float, un float PHP natif peut être différent de la valeur stockée d'origine lorsqu'il est converti à partir d'une chaîne. Par exemple, les colonnes MySQL prennent en charge une précision alors que les flottants PHP ne le font pas. Laisser des flottants sous forme de chaîne à partir de la base de données vous permet plus de contrôle (par exemple, choisir d'utiliser une bibliothèque avec une précision différente).