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 :
    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 :
    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 :
    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