  | 
  
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 below.
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 below:
 
char * name
- 
The name of the field.
 char * table
- 
The name of the table containing this field, if it isn't a calculated field.
For calculated fields, the 
table value is a NULL pointer.
 char * def
- 
The default value of this field (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 meaning
 |  
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  |  String (CHAR or 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 or not 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.
 unsigned int max_length
- 
The maximum width of the field for the result set. If you used
mysql_list_fields(), this contains the maximum length for the field.
 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 meaning
 |  
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)
 |  
BLOB_FLAG  |  Field is a BLOB or TEXT (deprecated)
 |  
TIMESTAMP_FLAG  |  Field is a TIMESTAMP (deprecated)
 |  
 
Use of the BLOB_FLAG, ENUM_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 or FIELD_TYPE_TIMESTAMP
instead.
The example below 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:
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.
  
 |