Problème :
Les résultats de la requête renvoient toutes les colonnes sous forme de types de chaîne , malgré la définition de colonnes entières et numériques dans le fichier base de données.
Intrication :
Le défi découle des limitations de la mise en œuvre des pilotes. Certains pilotes ne prennent pas en charge le renvoi de types numériques sous forme d'entiers ou de chiffres PHP, ce qui entraîne une inadéquation entre le type de données de la base de données et la représentation PHP.
Solution :
La clé pour résoudre ce problème le problème réside dans la garantie que le pilote mysqlnd est utilisé pour PHP. mysqlnd est un pilote natif MySQL qui fournit la prise en charge nécessaire pour renvoyer correctement les types numériques.
Comment installer mysqlnd :
Pour les systèmes Ubuntu :
Vérifier si mysqlnd est utilisé :
Après l'installation, exécutez php -i pour vérifier que mysqlnd est utilisé. Recherchez la ligne suivante dans le résultat :
PDO Driver for MySQL => enabled Client API version => mysqlnd 5.0.10 - 20111026 -
Paramètres PDO essentiels :
Pour garantir une gestion correcte des valeurs numériques, deux paramètres PDO sont cruciaux :
Après avoir défini ces indicateurs, les résultats de votre requête seront renvoie maintenant les colonnes entières et numériques comme prévu. Voici un exemple des valeurs renvoyées :
object(stdClass)[915] public 'integer_col' => int 1 public 'double_col' => float 1.55 public 'float_col' => float 1.5 public 'decimal_col' => string '1.20' (length=4) public 'bigint_col' => string '18446744073709551615' (length=20)
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!