| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
MYSQL
MYSQL_RES
SELECT, SHOW, DESCRIBE, EXPLAIN). The
information returned from a query is called the result set in the
remainder of this section.
MYSQL_ROW
mysql_fetch_row().
MYSQL_FIELD
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
mysql_field_seek().) Offsets are field numbers
within a row, beginning at zero.
my_ulonglong
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
char * table
table value is an empty string.
char * def
mysql_list_fields().
enum enum_field_types type
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
unsigned int max_length
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
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
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |