MYSQL
Esta estrutura representa um manpulador para uma conexão ao banco de dados. É usada para quase todas as funções MySQL.
MYSQL_RES
Esta estrutura representa o resultado de uma consulta que
retorna linhas (SELECT
,
SHOW
, DESCRIBE
,
EXPLAIN
). A informação retornada de uma
consulta é chamada conjunto de
resultado no resto desta seção.
MYSQL_ROW
Esta é uma representação segura de tipo de uma linha de
dados. Ela é implementada atualmente como um vetor de
strings de tamanho fixo (Você não pode tratá-los como
strings terminadas com null se os valores do campo podem
conter dados binários, porque tais valores podem conter um
byte null internamente.). Linhas são obtidas pela chamada
de mysql_fetch_row()
.
MYSQL_FIELD
Esta estrutura contém informação sobre um campo, tais
como nome, tipo e tamanho do campo. Seus membros são
descritos em mais detalhes aqui. Você pode obter a
estrutura MYSQL_FIELD
para cada campo
chamando mysql_fetch_field()
repetidamente. Valores de campos não são parte desta
estrutura; eles estão contidos na estrutura
MYSQL_ROW
.
MYSQL_FIELD_OFFSET
Esta é uma representação segura de um offset em uma lista
de campos MySQL. (Usado por
mysql_field_seek()
.) Offsets são
números de campos em um registro, começando com zero.
my_ulonglong
O tipo usado pelo número de linhas e para
mysql_affected_rows()
,
mysql_num_rows()
, e
mysql_insert_id()
. Este tipo fornece uma
faixa de 0
a 1.84e19
.
Em alguns sistemas, tentar imprimir um valor do tipo
my_ulonglong
não funcionará. Para
imprimir tais valores, converta-os para unsigned
long
e use o formato de impressão
%lu
. Exemplo:
printf ("Número de linhas: %lu\n", (unsigned long) mysql_num_rows(resultado));
A estrutura MYSQL_FIELD
contem os membros
listados aqui:
char * name
O nome do campo, como um string terminada com null.
char * table
O nome da tabela contendo este campo, se não for um campo
calculado. Para campos calculador, o valor
table
é uma string vazia.
char * def
O valor padrão para este campo, como um string terminada em
null. Ele é atribuido apenas se você utilizar
mysql_list_fields()
.
enum enum_field_types tipo
O tipo do campo. O valor tipo
pode ser um
dos seguintes:
Valou tipo | Descrição do tipo |
FIELD_TYPE_TINY |
campo TINYINT
|
FIELD_TYPE_SHORT |
campo SMALLINT
|
FIELD_TYPE_LONG |
campo INTEGER
|
FIELD_TYPE_INT24 |
campo MEDIUMINT
|
FIELD_TYPE_LONGLONG |
campo BIGINT
|
FIELD_TYPE_DECIMAL |
campo DECIMAL ou NUMERIC
|
FIELD_TYPE_FLOAT |
campo FLOAT
|
FIELD_TYPE_DOUBLE |
campo DOUBLE ou REAL
|
FIELD_TYPE_TIMESTAMP |
campo TIMESTAMP
|
FIELD_TYPE_DATE |
campo DATE
|
FIELD_TYPE_TIME |
campo TIME
|
FIELD_TYPE_DATETIME |
campo DATETIME
|
FIELD_TYPE_YEAR |
campo YEAR
|
FIELD_TYPE_STRING |
campo CHAR
|
FIELD_TYPE_VAR_STRING |
campo VARCHAR
|
FIELD_TYPE_BLOB |
campo BLOB ou TEXT (usa
max_length para determinar o
tamanho máximo) |
FIELD_TYPE_SET |
campo SET
|
FIELD_TYPE_ENUM |
campo ENUM
|
FIELD_TYPE_NULL |
campo tipo-NULL
|
FIELD_TYPE_CHAR |
Deprecado; use FIELD_TYPE_TINY
|
Você pode utilizar a macro IS_NUM()
para
testar se uma campo tem um tipo numérico. Passe o valor
tipo
para IS_NUM()
e
ele irá avaliar como VERDADEIRO (TRUE) se o campo for
numérico:
if (IS_NUM(campo->tipo)) printf("Campo é numérico\n");
unsigned int length
A largura de um campo, como especificado nas definições da tabela.
unsigned int max_length
A largura máxima do campo no conjunto de resultados (O
tamanho do maior valor do campo para os registro no
resultado atual). Se você utilizar
mysql_store_result()
ou
mysql_list_fields()
, ele contem o tamanho
máximo para o campo. Se você utiliza
mysql_use_result()
, o valor desta
variável é zero.
unsigned int param
Diferentes parâmetros binários para o campo. O valor de
param
pode ter zero ou mais dos seguintes
conjunto de bits:
Valor param | Descrição param |
NOT_NULL_FLAG |
Campo não pode ser NULL
|
PRI_KEY_FLAG |
Campo é parte de uma chave primária |
UNIQUE_KEY_FLAG |
Campo é parte de uma chave única |
MULTIPLE_KEY_FLAG |
Campo é parte de uma chave não única |
UNSIGNED_FLAG |
Campo tem o atributo UNSIGNED
|
ZEROFILL_FLAG |
Campo tem o atributo ZEROFILL
|
BINARY_FLAG |
Campo tem o atributo BINARY
|
AUTO_INCREMENT_FLAG |
Campo tem o atributo AUTO_INCREMENT
|
ENUM_FLAG |
Campo é um ENUM (obsoleto) |
SET_FLAG |
Campo é um SET (obsoleto) |
BLOB_FLAG |
Campo é um BLOB ou TEXT
(obsoleto) |
TIMESTAMP_FLAG |
Campo é um TIMESTAMP (obsoleto) |
Uso dos parâmetros BLOB_FLAG
,
ENUM_FLAG
, SET_FLAG
, e
TIMESTAMP_FLAG
foram obsoletos porque
eles indicavam o tipo de um campo e não um atributo do
tipo. É preferível testar
campo->tipo
para
FIELD_TYPE_BLOB
,
FIELD_TYPE_ENUM
,
FIELD_TYPE_SET
, ou
FIELD_TYPE_TIMESTAMP
.
O seguinte exemplo ilustra o uso típico do valor
param
:
if (campo->param & NOT_NULL_FLAG) printf("Campo não pode ser nulo\n");
Você pode usar as seguintes macros para determinar o status
dos valores param
:
Status param | Descrição |
IS_NOT_NULL(param) |
Verdadeiro se se este campo é definido como NOT NULL
|
IS_PRI_KEY(param) |
Verdadeiro de este campo é uma chave primária |
IS_BLOB(param) |
Verdadeiro se este campo é um BLOB ou
TEXT (obsoleto; teste
campo->tipo ) |
unsigned int decimals
O número de decimais para um campo numérico.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.