Services webmasters
Partenaires
Jeux concours gratuits
 
Les interfaces pour MySQL
<<<
Types de données de l'API C Vue d'ensemble des fonctions de l'API C
>>>

8.4 Interface C pour MySQL
8 Les interfaces pour MySQL
 Manuel de Référence MySQL 4.1 : Version Française

->Types de données de l'API C
Vue d'ensemble des fonctions de l'API C
Description des fonctions de l'API C
Description des fonctions threadées de C
Description des fonctions C du serveur embarqué
Questions courantes sur la librairie C
Compiler les clients
Comment faire un client MySQL threadé
libmysqld, la librairie du serveur embarqué MySQL

8.4.1 Types de données de l'API C

    MYSQL
    Cette structure représente un gestionnaire de connexion à la base de données. Elle est utilisée dans la plupart des fonctions MySQL.
    MYSQL_RES
    Cette structure représente le résultat d'une requête qui retourne des lignes ( SELECT , SHOW , DESCRIBE , EXPLAIN ). L'information retournée par une requête est appelée jeu de résultats dans le reste de cette section.
    MYSQL_ROW
    C'est une représentation sûre pour les types d'une ligne de données. Elle est actuellement implémentée en tant que tableau de chaîne à octets comptés. (Vous ne pouvez la traiter en tant que chaîne terminée par une valeur nulle si les valeurs du champ peuvent contenir des données binaires, car de telles valeurs peuvent contenir elles-même des octets nuls.) Les lignes sont obtenues en appelant mysql_fetch_row() .
    MYSQL_FIELD
    Cette structure contient des informations à propos du champ, tel que son nom, son type, et sa taille. Ses membres sont décrit en plus de détails ici. Vous pouvez obtenir une structure MYSQL_FIELD pour chaque champ en appelant plusieurs fois mysql_fetch_field() . Les valeurs des champs ne font pas partie de la structure; elles sont contenues dans une structure MYSQL_ROW .
    MYSQL_FIELD_OFFSET
    C'est une représentation sûre des types pour les index dans une liste de champs MySQL. (Utilisés par mysql_field_seek() .) Les index sont des numéros de champs, dans une ligne, commençant à zéro.
    my_ulonglong
    Le type utilisé pour le nombre de lignes et pour mysql_affected_rows() , mysql_num_rows() , et mysql_insert_id() . Ce type fournit une echelle allant de 0 à 1.84e19 .Sur quelques systèmes, essayer d'écrire la valeur d'un type my_ulonglong ne fonctionnera pas. Pour écrire une telle valeur, convertissez là en unsigned long et utilisez un format d'impression %lu . Exemple :
    
    printf ("Nombre de lignes : %lu\n", (unsigned long) mysql_num_rows(result));
    
La structure MYSQL_FIELD contient les membres listés ici :
    char * name
    Le nom du champ, une chaîne terminée par une valeur nulle.
    char * table
    Le nom de la table contenant ce champ, s'il n'est pas calculé. Pour les champs calculés, la valeur de table est une chaîne vide.
    char * def
    La valeur par défaut de ce champ, en tant que chaîne terminée par une valeur nulle. Ce n'est définit que si vous utilisez mysql_list_fields() .
    enum enum_field_types type
    Le type du champ. La valeur de type peut être l'une des suivantes :
    Valeur de type Description du type
    FIELD_TYPE_TINY Champ TINYINT
    FIELD_TYPE_SHORT Champ SMALLINT
    FIELD_TYPE_LONG Champ INTEGER
    FIELD_TYPE_INT24 Champ MEDIUMINT
    FIELD_TYPE_LONGLONG Champ BIGINT
    FIELD_TYPE_DECIMAL Champ DECIMAL ou NUMERIC
    FIELD_TYPE_FLOAT Champ FLOAT
    FIELD_TYPE_DOUBLE Champ DOUBLE ou REAL
    FIELD_TYPE_TIMESTAMP Champ TIMESTAMP
    FIELD_TYPE_DATE Champ DATE
    FIELD_TYPE_TIME Champ TIME
    FIELD_TYPE_DATETIME Champ DATETIME
    FIELD_TYPE_YEAR Champ YEAR
    FIELD_TYPE_STRING Champ chaîne de caractères ( CHAR ou VARCHAR )
    FIELD_TYPE_BLOB Champ BLOB ou TEXT (utilisez max_length pour déterminer la taille maximale)
    FIELD_TYPE_SET Champ SET
    FIELD_TYPE_ENUM Champ ENUM
    FIELD_TYPE_NULL Champ de type NULL
    FIELD_TYPE_CHAR Désapprouvé, utilisez FIELD_TYPE_TINY à la place
    Vous pouvez utiliser la macro IS_NUM() pour tester si un champ est de type numérique ou non. Passez la valeur de type à IS_NUM() et elle sera évaluée à TRUE si le champ est numérique :
    
    if (IS_NUM(field->type))
        printf("Le champ est numérique\n");
    unsigned int length
    La taille du champ, comme spécifié dans la définition de la table.
    unsigned int max_length
    La longueur maximale du champ pour le jeu de résultats (la taille de la plus longue valeur de champ actuellement dans le jeu de résultat). Si vous utilisez mysql_store_result() ou mysql_list_fields() , cela contient la longueur maximale pour le champ. Si vous utilisez mysql_use_result() , la valeur de cette variable est zéro.
    unsigned int flags
    Les différents attributs sous forme de bits pour le champ. La valeur de flags peut avoir zéro ou plusieurs de ces bits suivants activés :
    Valeur d'attribut Description d'attribut
    NOT_NULL_FLAG Le champ ne peut être NULL
    PRI_KEY_FLAG Le champ fait parti d'une clef primaire
    UNIQUE_KEY_FLAG Le champ fait parti d'une clef unique
    MULTIPLE_KEY_FLAG Le champ fait parti d'une clef non-unique
    UNSIGNED_FLAG Le champ possède l'attribut UNSIGNED
    ZEROFILL_FLAG Le champ possède l'attribut ZEROFILL
    BINARY_FLAG Le champ possède l'attribut BINARY
    AUTO_INCREMENT_FLAG Le champ possède l'attribut AUTO_INCREMENT
    ENUM_FLAG Le champ est un ENUM (désapprouvé)
    SET_FLAG Le champ est un SET (désapprouvé)
    BLOB_FLAG Le champ est un BLOB ou TEXT (désapprouvé)
    TIMESTAMP_FLAG Le champ est un TIMESTAMP (désapprouvé)
    L'utilisation des attributs BLOB_FLAG , ENUM_FLAG , SET_FLAG , et TIMESTAMP_FLAG est désapprouvé car ils indiquent un type de champ plutôt qu'un attribut de type de champ. Il est préférable de tester field->type avec FIELD_TYPE_BLOB , FIELD_TYPE_ENUM , FIELD_TYPE_SET , ou FIELD_TYPE_TIMESTAMP à la place.

    L'exemple suivant illustre une utilisation typique de la valeur de flags :

    
    if (field->flags & NOT_NULL_FLAG)
        printf("Le champ ne peut être nul\n");
    Vous pouvez utiliser les différentes macros ci-dessous pour déterminer le status booléen de la valeur de l'attribut :
    Status de l'attribut Description
    IS_NOT_NULL(flags) Vrai si le champ est défini en tant que NOT NULL
    IS_PRI_KEY(flags) Vrai si le champ est une clef primaire
    IS_BLOB(flags) Vrai si le champ est un BLOB ou TEXT (désapprouvé; tester plutôt field->type )
    unsigned int decimals
    Le nombre de décimales pour les champs numériques.

<< Types de données de l'API C >>
Les interfaces pour MySQL Interface C pour MySQL Vue d'ensemble des fonctions de l'API C
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -