IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Garder le type d'une variable lors d'une requete SQL [PDO]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Points : 30
    Points
    30
    Par défaut Garder le type d'une variable lors d'une requete SQL
    Bonjour,

    Dans une table de ma base j'ai deux champs:
    id de type int -> valeur 1
    nom de type varchar -> valeur 2000

    Dans mon fichier php j'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    	$db = new PDO('mysql:host=localhost;dbname=mon_projet', 'root', '');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    	$reponse = $db->query('SELECT id, nom FROM ma_table WHERE id=5');
    	while ($donnees = $reponse->fetch())
    	{
    		if (is_int($donnee['nom']))
    		{
    			echo 'Le nom est un int';
    		}
    		else 
    		{
    			echo 'Le nom est un string';
    		}
    		if (is_int($donnee['id']))
    		{
    			echo 'Le id est un int';
    		}
    		else 
    		{
    			echo 'Le id est un string';
    		}
     
    	}
    ?>
    Le code ci-dessus me renvoi la reponse suivante
    Le nom est un string //Ce qui normal
    Le id est un string //Pourquoi?

    Est-il possible que les donnees recuperer pour le champs id reste de type int ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,
    Citation Envoyé par p_oum Voir le message
    Le code ci-dessus me renvoi la reponse suivante
    Le nom est un string //Ce qui normal
    Le id est un string //Pourquoi?

    Est-il possible que les donnees recuperer pour le champs id reste de type int ?

    Merci
    Parce que tout ce que tu récupères en provenance de la base de données est de type string. C'est à toi ensuite de caster tes données dans les bons types.
    Je te rappelle que PHP est faiblement typé, castes tes valeurs au besoin mais manipules les telles qu'elles proviennent de la base.

    Par exemple, pour t'assurer que tu manipules un integer (même de grande taille), tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ctype_digit($value)) { $type = 'int'; }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Bonjour,

    Parce que tout ce que tu récupères en provenance de la base de données est de type string.
    Ok merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer la valeur d'une variable lors d'une exception
    Par sylvie111 dans le forum Général Python
    Réponses: 1
    Dernier message: 18/06/2012, 20h00
  2. Réponses: 8
    Dernier message: 01/03/2012, 14h45
  3. Réponses: 9
    Dernier message: 23/06/2009, 10h54
  4. Réponses: 1
    Dernier message: 14/02/2007, 17h08
  5. récupérer une variable javascript dans une variable java
    Par tx dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/07/2006, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo