DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) c-api-datatypes

Info Catalog (mysql.info) c (mysql.info) c (mysql.info) 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. You should not try to make
      a copy of a `MYSQL' structure. There is no guarantee that such a
      copy will be usable.
 
    * `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' does 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. If the field
      was given an alias with an `AS' clause, the value of `name' is the
      alias.
 
    * `char * org_name'
 
      The name of the field, as a null-terminated string. Aliases are
      ignored.
 
    * `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. If the table was given an alias with an `AS' clause,
      the value of `table' is the alias.
 
    * `char * org_table'
 
      The name of the table, as a null-terminated string. Aliases are
      ignored.
 
    * `char * db'
 
      The name of the database that the field comes from, as a
      null-terminated string. If the field is a calculated field, `db'
      is an empty string.
 
    * `char * catalog'
 
      The catalog name. This value is always `"def"'.
 
    * `char * def'
 
      The default value of this field, as a null-terminated string. This
      is set only if you use `mysql_list_fields()'.
 
    * `unsigned long length'
 
      The width of the field, as specified in the table definition.
 
    * `unsigned long 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 name_length'
 
      The length of `name'.
 
    * `unsigned int org_name_length'
 
      The length of `org_name'.
 
    * `unsigned int table_length'
 
      The length of `table'.
 
    * `unsigned int org_table_length'
 
      The length of `org_table'.
 
    * `unsigned int db_length'
 
      The length of `db'.
 
    * `unsigned int catalog_length'
 
      The length of `catalog'.
 
    * `unsigned int def_length'
 
      The length of `def'.
 
    * `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 `MYSQL_TYPE_BLOB',
      `MYSQL_TYPE_ENUM', `MYSQL_TYPE_SET', or `MYSQL_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.
 
    * `unsigned int charset_nr'
 
      The character set number for the field.
 
    * `enum enum_field_types type'
 
      The type of the field. The `type' value may be one of the
      `MYSQL_TYPE_' symbols shown in the following table.
 
      *Type Value*            *Type Description*
      `MYSQL_TYPE_TINY'       `TINYINT' field
      `MYSQL_TYPE_SHORT'      `SMALLINT' field
      `MYSQL_TYPE_LONG'       `INTEGER' field
      `MYSQL_TYPE_INT24'      `MEDIUMINT' field
      `MYSQL_TYPE_LONGLONG'   `BIGINT' field
      `MYSQL_TYPE_DECIMAL'    `DECIMAL' or `NUMERIC' field
      `MYSQL_TYPE_NEWDECIMAL' Precision math `DECIMAL' or `NUMERIC'
                              field (MySQL 5.0.3 and up)
      `MYSQL_TYPE_FLOAT'      `FLOAT' field
      `MYSQL_TYPE_DOUBLE'     `DOUBLE' or `REAL' field
      `MYSQL_TYPE_BIT'        `BIT' field (MySQL 5.0.3 and up)
      `MYSQL_TYPE_TIMESTAMP'  `TIMESTAMP' field
      `MYSQL_TYPE_DATE'       `DATE' field
      `MYSQL_TYPE_TIME'       `TIME' field
      `MYSQL_TYPE_DATETIME'   `DATETIME' field
      `MYSQL_TYPE_YEAR'       `YEAR' field
      `MYSQL_TYPE_STRING'     `CHAR' or `BINARY' field
      `MYSQL_TYPE_VAR_STRING' `VARCHAR' or `VARBINARY' field
      `MYSQL_TYPE_BLOB'       `BLOB' or `TEXT' field (use
                              `max_length' to determine the
                              maximum length)
      `MYSQL_TYPE_SET'        `SET' field
      `MYSQL_TYPE_ENUM'       `ENUM' field
      `MYSQL_TYPE_GEOMETRY'   Spatial field
      `MYSQL_TYPE_NULL'       `NULL'-type field
      `MYSQL_TYPE_CHAR'       Deprecated; use `MYSQL_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 evaluates
      to TRUE if the field is numeric:
 
           if (IS_NUM(field->type))
               printf("Field is numeric\n");
 
Info Catalog (mysql.info) c (mysql.info) c (mysql.info) c-api-function-overview
automatically generated byinfo2html