[ < ] | [ > ] | [ << ] | [ 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] | [ ? ] |