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 :

type de champs [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    électronicien
    Inscrit en
    Octobre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : électronicien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 225
    Points : 236
    Points
    236
    Par défaut type de champs
    Bonjour. Je travaille à refaire un programme en utilisant mysqli..... en mode procédural
    Avant j'employais une function:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mysql_field_type ($table,$i)=='timestamp'
    Maintenant il n'y a plus d'équivalent.
    Le site php.net qui m'est d'un grand secours ne me donne pas de solution.

    Il renvoie vers mysqli_fetch_field_direct() qui ne donne plus le nom du type.
    On a juste un numéro dont on ne sait pas quoi faire.

    Il faut donc construire une fonction du style:
    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
    26
    27
    28
    29
    30
    function sqli_type_name($type){
    $A= array(
        1=>'tinyint',
        2=>'smallint',
        3=>'int',
        4=>'float',
        5=>'double',
        7=>'timestamp',
        8=>'bigint',
        9=>'mediumint',
        10=>'date',
        11=>'time',
        12=>'datetime',
        13=>'year',
        16=>'bit',
        253=>'varchar',
        254=>'char',
        246=>'decimal',
        247 =>'ENUM',
        248 =>'SET',
        249 =>'TYNY_BLOB',
        250 =>'MEDIUM_BLOB',
        251 =>'LONG_BLOB',
        252 =>'BLOB',
        253 =>'VAR_STRING',
        254 =>'STRING',
        255 =>'GEOMETRY'
        );
    return $A[$type] ;   
    }
    Maintenant il faudrait implémenter dans $finfo cette valeur.

    Je me demande si je ne fais pas fausse route, car php est un système bien pensé et je ne comprends pas pourquoi ça a été enlevé

    Mon but est de comparer le type de champs mariadb pour formater convenablement mes variables. Par exemple la virgule dans les décimales qui doit être un point dans mariadb.
    Désolé de vous embêter.... Il y a surement un truc que je ne comprends pas. Help me. Merci.
    Débusqueur de bug et chercheur en améliorations

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Il ya des constantes pour faire la correspondance entre les valeurs et les types (MYSQLI_TYPE_TINY, MYSQLI_TYPE_SHORT...) http://php.net/manual/fr/mysqli.cons...ysqli-type-bit

    Tu dois donc pouvoir faire directement un switch sur la valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $field = mysqli_fetch_field($result, $i);
    switch ($field) {
        case MYSQLI_TYPE_INT:
            // c'est un nombre
            break;
        case MYSQLI_TYPE_DATE
            // c'est un nombre
            break;
    //....
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre actif
    Homme Profil pro
    électronicien
    Inscrit en
    Octobre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : électronicien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 225
    Points : 236
    Points
    236
    Par défaut
    Merci Celira. Tu me sauves la vie. Je ne connaissais pas ces constantes, mais c'est ça qu'il me faut.
    Je note ton lien sur php.net car leur champ "recherche" n'est pas au point.
    T'es super. Cordialement.
    Débusqueur de bug et chercheur en améliorations

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

Discussions similaires

  1. Pb de type de champs dans une requête
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/05/2005, 15h19
  2. [Struts][Conseil] type de champs ActionForm
    Par Sniper37 dans le forum Struts 1
    Réponses: 10
    Dernier message: 12/04/2005, 15h43
  3. Changement type de champ: ORA-01439
    Par PATMOR dans le forum Oracle
    Réponses: 8
    Dernier message: 12/02/2005, 16h14
  4. [Oracle][Delphi 7] Problème type de champ
    Par tiennos dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/07/2004, 10h17
  5. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/09/2002, 11h08

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