Maison >développement back-end >tutoriel php >Pourquoi les champs entiers MySQL sont-ils renvoyés sous forme de chaînes en PHP ?

Pourquoi les champs entiers MySQL sont-ils renvoyés sous forme de chaînes en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-18 11:11:14340parcourir

Why Are MySQL Integer Fields Returned as Strings in PHP?

Champs entiers MySQL renvoyés sous forme de chaînes en PHP

Lors de la récupération de données d'une base de données MySQL à l'aide de PHP, il est généralement observé que des champs entiers sont renvoyés comme des chaînes. Cela peut être déconcertant, car on pourrait s'attendre à ce qu'un champ entier donne une valeur entière.

Pour comprendre ce comportement, il est essentiel de noter que PHP convertit automatiquement toutes les données récupérées depuis MySQL en chaînes. Cette conversion se produit quel que soit le type de données réel dans la base de données.

Pour contourner ce problème et obtenir la valeur entière correcte, il existe deux approches viables :

  1. Casting de type explicite  : Pour convertir explicitement une chaîne en entier, vous pouvez utiliser l'opérateur de conversion de type (int) ou intval() fonction.
$id = (int) $row['userid'];
$id = intval($row['userid']);
  1. PDO : si vous utilisez PHP Data Objects (PDO), vous pouvez tirer parti de sa conversion de type de données intégrée. capacités. En définissant le mode de récupération sur PDO::FETCH_ASSOC, vous pouvez récupérer des données avec les types de données appropriés, y compris des entiers.
$stmt = $conn->prepare("SELECT userid FROM DB WHERE name='john'");
$stmt->execute();
$row = $stmt->fetch(\PDO::FETCH_ASSOC);
$id = $row['userid']; // Returns an integer

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!

Déclaration:
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