Maison > développement back-end > tutoriel php > Comment garantir que les colonnes numériques MySQL reviennent sous forme d'entiers et de valeurs numériques PHP ?

Comment garantir que les colonnes numériques MySQL reviennent sous forme d'entiers et de valeurs numériques PHP ?

Linda Hamilton
Libérer: 2024-12-08 06:44:10
original
978 Les gens l'ont consulté

How to Ensure MySQL Numeric Columns Return as PHP Integers and Numerics?

Renvoi de colonnes entières et numériques à partir de MySQL sous forme d'entiers et de valeurs numériques PHP

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 :

  1. Supprimez le pilote natif actuel : apt-get remove php5-mysql
  2. Installez mysqlnd : apt-get install php5-mysqlnd
  3. Redémarrer Apache : service apache2 restart

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 -
Copier après la connexion

Paramètres PDO essentiels :
Pour garantir une gestion correcte des valeurs numériques, deux paramètres PDO sont cruciaux :

  1. PDO::ATTR_EMULATE_PREPARES : Définissez ceci sur false pour améliorer les performances et éviter les erreurs potentielles. problèmes.
  2. PDO::ATTR_STRINGIFY_FETCHES: Désactivez cette option pour empêcher le pilote de convertir des valeurs numériques en chaînes.

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal