Maison > base de données > tutoriel mysql > Comment puis-je m'assurer que les colonnes entières et numériques MySQL renvoient le type de données correct en PHP ?

Comment puis-je m'assurer que les colonnes entières et numériques MySQL renvoient le type de données correct en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-05 19:56:19
original
746 Les gens l'ont consulté

How Can I Ensure MySQL Integer and Numeric Columns Return as the Correct Data Type in PHP?

Renvoi d'entiers et de valeurs numériques depuis MySQL sous forme d'entiers et de valeurs numériques en PHP

De nombreux développeurs rencontrent le problème des requêtes MySQL renvoyant des colonnes entières et numériques sous la forme chaînes en PHP. Cela est dû au comportement par défaut du pilote MySQL natif, qui ne prend pas en charge le renvoi de types numériques.

La solution : utiliser le pilote mysqlnd

La solution est pour utiliser le pilote mysqlnd pour PHP. Le pilote mysqlnd est un pilote plus moderne et riche en fonctionnalités qui offre la possibilité de renvoyer des colonnes numériques sous forme d'entiers et de chiffres.

Identifier si vous utilisez mysqlnd

Pour vérifier si vous utilisez le pilote mysqlnd, ouvrez la page d'informations PHP (php -i) et regardez sous la section "Pilote PDO pour MySQL". S'il mentionne "mysqlnd", alors vous utilisez le pilote mysqlnd. Sinon, vous utilisez probablement le pilote MySQL natif.

Installer mysqlnd sur Ubuntu

Pour installer le pilote mysqlnd sur Ubuntu, vous pouvez utiliser la commande :

sudo apt-get install php5-mysqlnd
Copier après la connexion

Redémarrage d'Apache

Après avoir installé le pilote mysqlnd, vous devez redémarrer Apache pour que les modifications prennent effet.

Vérification du pilote

Une fois Apache redémarré, vous pouvez vérifier à nouveau si le pilote mysqlnd est en cours d'exécution. utilisé en ouvrant la page d'informations PHP (php -i). Il doit maintenant mentionner explicitement "mysqlnd" dans la section "Pilote PDO pour MySQL".

Paramètres PDO

Assurez-vous que les paramètres PDO suivants sont définis sur false pour éviter les problèmes potentiels :

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
Copier après la connexion

Retourné Valeurs

En fonction du type de base de données, différents types de données seront renvoyés comme suit :

  • Les types à virgule flottante (FLOAT, DOUBLE) seront renvoyés sous forme de flottants PHP.
  • Les types entiers (INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT) seront renvoyés en PHP entiers.
  • Les types à virgule fixe (DECIMAL, NUMERIC) seront renvoyés sous forme de chaînes.
  • Les BIGINT avec des valeurs supérieures à 9223372036854775807 (sur un système 64 bits) seront renvoyés sous forme de chaînes.

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