Les requêtes PHP renvoient souvent toutes les colonnes sous forme de chaînes, même lorsqu'elles traitent des entiers ou des valeurs numériques dans MySQL. Cela peut devenir problématique lors de la gestion de données avec des exigences de format spécifiques, telles que la sortie JSON consommée par plusieurs services.
Bien que certaines sources affirment que le renvoi de types numériques n'est pas possible, cela est pas tout à fait vrai. Les idées fausses suivantes peuvent être écartées :
La clé pour résoudre ce problème est d'utiliser le pilote mysqlnd pour PHP. Contrairement au pilote natif, mysqlnd prend en charge le renvoi de types numériques pour les colonnes entières (INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT) et les colonnes à virgule flottante double précision (DOUBLE).
Pour vérifier si vous utilisez mysqlnd, exécutez php -i. Si la section pdo_mysql mentionne « mysqlnd », le pilote est présent. Sinon, suivez ces étapes pour l'installer :
Ubuntu :
Confirmer la présence : Après l'installation, php -i devrait maintenant afficher la version mysqlnd dans la section pdo_mysql.
De plus, assurez-vous que les paramètres PDO suivants sont définis correctement :
Avec mysqlnd et paramètres PDO appropriés, vous pouvez désormais interroger les tables MySQL et obtenir des valeurs numériques dans les délais attendus. format :
$result = $pdo->query('SELECT * FROM table'); $row = $result->fetch(PDO::FETCH_OBJ); echo $row->integer_col; // 1 (integer) echo $row->double_col; // 1.55 (float) echo $row->decimal_col; // '1.20' (string)
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!