Champ entier MySQL renvoyé sous forme de chaîne en PHP
Ce problème survient lors de la récupération de données d'une base de données MySQL à l'aide de PHP. Quel que soit le type de données défini dans la base de données, les données sont toujours renvoyées par défaut sous forme de chaîne en PHP. Cet écart peut être déroutant, surtout si l'on s'attend à ce qu'un champ entier se comporte comme tel.
Dans votre cas spécifique, avec l'ID utilisateur du champ de base de données déclaré comme INT(11), les données sont récupérées à l'aide de la requête :
"SELECT userid FROM DB WHERE name='john'"
Pour gérer le résultat, vous utilisez :
$row=$result->fetch_assoc(); $id=$row['userid'];
Cependant, lors de la vérification du type de données de $id à l'aide de echo gettype($id);, il renvoie "string" au lieu de "integer".
Solution
Pour résoudre ce problème, PHP fournit des méthodes pour convertir la chaîne récupérée les données dans un format entier. Vous pouvez utiliser le code suivant :
$id = (int) $row['userid'];
Alternativement, vous pouvez également utiliser la fonction intval() :
$id = intval($row['userid']);
En effectuant cette conversion, vous vous assurez que la variable $id est correctement reconnu comme un type de données entier, permettant une manipulation et des opérations appropriées en tant qu'entier.
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!