DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info.gz) C API datatypes

Info Catalog (mysql.info.gz) C (mysql.info.gz) C (mysql.info.gz) C API function overview
 
 22.2.1 C API Data types
 -----------------------
 
 `MYSQL'
      This structure represents a handle to one database connection. It
      is used for almost all MySQL functions.
 
 `MYSQL_RES'
      This structure represents the result of a query that returns rows
      (`SELECT', `SHOW', `DESCRIBE', `EXPLAIN').  The information
      returned from a query is called the _result set_ in the remainder
      of this section.
 
 `MYSQL_ROW'
      This is a type-safe representation of one row of data. It is
      currently implemented as an array of counted byte strings.  (You
      cannot treat these as null-terminated strings if field values may
      contain binary data, because such values may contain null bytes
      internally.)  Rows are obtained by calling `mysql_fetch_row()'.
 
 `MYSQL_FIELD'
      This structure contains information about a field, such as the
      field's name, type, and size. Its members are described in more
      detail here.  You may obtain the `MYSQL_FIELD' structures for each
      field by calling `mysql_fetch_field()' repeatedly.  Field values
      are not part of this structure; they are contained in a
      `MYSQL_ROW' structure.
 
 `MYSQL_FIELD_OFFSET'
      This is a type-safe representation of an offset into a MySQL field
      list.  (Used by `mysql_field_seek()'.)  Offsets are field numbers
      within a row, beginning at zero.
 
 `my_ulonglong'
      The type used for the number of rows and for
      `mysql_affected_rows()', `mysql_num_rows()', and
      `mysql_insert_id()'. This type provides a range of `0' to
      `1.84e19'.
 
      On some systems, attempting to print a value of type `my_ulonglong'
      will not work.  To print such a value, convert it to `unsigned
      long' and use a `%lu' print format.  Example:
           printf ("Number of rows: %lu\n", (unsigned long) mysql_num_rows(result));
 
 The `MYSQL_FIELD' structure contains the members listed here:
 
 `char * name'
      The name of the field, as a null-terminated string.
 
 `char * table'
      The name of the table containing this field, if it isn't a
      calculated field.  For calculated fields, the `table' value is an
      empty string.
 
 `char * def'
      The default value of this field, as a null-terminated string.
      This is set only if you use `mysql_list_fields()'.
 
 `enum enum_field_types type'
      The type of the field.  The `type' value may be one of the
      following:
 
      *Type Value*            *Type Description*
      `FIELD_TYPE_TINY'       `TINYINT' field
      `FIELD_TYPE_SHORT'      `SMALLINT' field
      `FIELD_TYPE_LONG'       `INTEGER' field
      `FIELD_TYPE_INT24'      `MEDIUMINT' field
      `FIELD_TYPE_LONGLONG'   `BIGINT' field
      `FIELD_TYPE_DECIMAL'    `DECIMAL' or `NUMERIC' field
      `FIELD_TYPE_FLOAT'      `FLOAT' field
      `FIELD_TYPE_DOUBLE'     `DOUBLE' or `REAL' field
      `FIELD_TYPE_TIMESTAMP'  `TIMESTAMP' field
      `FIELD_TYPE_DATE'       `DATE' field
      `FIELD_TYPE_TIME'       `TIME' field
      `FIELD_TYPE_DATETIME'   `DATETIME' field
      `FIELD_TYPE_YEAR'       `YEAR' field
      `FIELD_TYPE_STRING'     `CHAR' field
      `FIELD_TYPE_VAR_STRING' `VARCHAR' field
      `FIELD_TYPE_BLOB'       `BLOB' or `TEXT' field (use
                              `max_length' to determine the
                              maximum length)
      `FIELD_TYPE_SET'        `SET' field
      `FIELD_TYPE_ENUM'       `ENUM' field
      `FIELD_TYPE_NULL'       `NULL'-type field
      `FIELD_TYPE_CHAR'       Deprecated; use `FIELD_TYPE_TINY'
                              instead
 
      You can use the `IS_NUM()' macro to test whether a field has a
      numeric type.  Pass the `type' value to `IS_NUM()' and it will
      evaluate to TRUE if the field is numeric:
 
           if (IS_NUM(field->type))
               printf("Field is numeric\n");
 
 `unsigned int length'
      The width of the field, as specified in the table definition.
 
 `unsigned int max_length'
      The maximum width of the field for the result set (the length of
      the longest field value for the rows actually in the result set).
      If you use `mysql_store_result()' or `mysql_list_fields()', this
      contains the maximum length for the field.  If you use
      `mysql_use_result()', the value of this variable is zero.
 
 `unsigned int flags'
      Different bit-flags for the field.  The `flags' value may have zero
      or more of the following bits set:
 
      *Flag Value*            *Flag Description*
      `NOT_NULL_FLAG'         Field can't be `NULL'
      `PRI_KEY_FLAG'          Field is part of a primary key
      `UNIQUE_KEY_FLAG'       Field is part of a unique key
      `MULTIPLE_KEY_FLAG'     Field is part of a non-unique key
      `UNSIGNED_FLAG'         Field has the `UNSIGNED' attribute
      `ZEROFILL_FLAG'         Field has the `ZEROFILL' attribute
      `BINARY_FLAG'           Field has the `BINARY' attribute
      `AUTO_INCREMENT_FLAG'   Field has the `AUTO_INCREMENT'
                              attribute
      `ENUM_FLAG'             Field is an `ENUM' (deprecated)
      `SET_FLAG'              Field is a `SET' (deprecated)
      `BLOB_FLAG'             Field is a `BLOB' or `TEXT'
                              (deprecated)
      `TIMESTAMP_FLAG'        Field is a `TIMESTAMP' (deprecated)
 
      Use of the `BLOB_FLAG', `ENUM_FLAG', `SET_FLAG', and
      `TIMESTAMP_FLAG' flags is deprecated because they indicate the
      type of a field rather than an attribute of its type.  It is
      preferable to test `field->type' against `FIELD_TYPE_BLOB',
      `FIELD_TYPE_ENUM', `FIELD_TYPE_SET', or `FIELD_TYPE_TIMESTAMP'
      instead.
 
      The following example illustrates a typical use of the `flags'
      value:
 
           if (field->flags & NOT_NULL_FLAG)
               printf("Field can't be null\n");
 
      You may use the following convenience macros to determine the
      boolean status of the `flags' value:
 
      *Flag Status*     *Description*
      `IS_NOT_NULL(flags)'True if this field is defined as
                        `NOT NULL'
      `IS_PRI_KEY(flags)'True if this field is a primary key
      `IS_BLOB(flags)'  True if this field is a `BLOB' or
                        `TEXT' (deprecated; test
                        `field->type' instead)
 
 `unsigned int decimals'
      The number of decimals for numeric fields.
 
Info Catalog (mysql.info.gz) C (mysql.info.gz) C (mysql.info.gz) C API function overview
automatically generated byinfo2html