buffer_type
结构成员
MYSQL_BIND
表示绑定到语句参数或结果集列的C语言变量的数据类型
。对于输入,buffer_type
指示包含要发送到服务器的值的变量的类型。对于输出,它指示变量的类型,从服务器接收到的值应存储到该变量中。
下表显示了
发送到服务器的输入值的结构buffer_type
成员
的允许值。MYSQL_BIND
该表显示了您可以使用的 C 变量类型、相应的类型代码以及无需转换即可使用提供的值的 SQL 数据类型。buffer_type
根据您要绑定的 C 语言变量的数据类型选择值。对于整数类型,您还应该设置
is_unsigned
成员以指示变量是有符号的还是无符号的。
表 6.1 MYSQL_BIND 结构允许的输入数据类型
输入变量 C 类型 |
buffer_type 价值 |
目标值的 SQL 类型 |
---|---|---|
signed char |
MYSQL_TYPE_TINY |
TINYINT |
short int |
MYSQL_TYPE_SHORT |
SMALLINT |
int |
MYSQL_TYPE_LONG |
INT |
long long int |
MYSQL_TYPE_LONGLONG |
BIGINT |
float |
MYSQL_TYPE_FLOAT |
FLOAT |
double |
MYSQL_TYPE_DOUBLE |
DOUBLE |
MYSQL_TIME |
MYSQL_TYPE_TIME |
TIME |
MYSQL_TIME |
MYSQL_TYPE_DATE |
DATE |
MYSQL_TIME |
MYSQL_TYPE_DATETIME |
DATETIME |
MYSQL_TIME |
MYSQL_TYPE_TIMESTAMP |
TIMESTAMP |
char[] |
MYSQL_TYPE_STRING |
TEXT ,
CHAR ,
VARCHAR
|
char[] |
MYSQL_TYPE_BLOB |
BLOB ,
BINARY ,
VARBINARY
|
MYSQL_TYPE_NULL |
NULL |
按照第 6.2 节“C API 准备语句数据结构”中成员
MYSQL_TYPE_NULL
的说明中的指示
使用。
is_null
对于输入字符串数据,使用MYSQL_TYPE_STRING
orMYSQL_TYPE_BLOB
取决于值是字符(非二进制)还是二进制字符串:
MYSQL_TYPE_STRING
表示字符输入字符串数据。假定该值位于character_set_client
系统变量指示的字符集中。如果服务器将值存储到具有不同字符集的列中,它会将值转换为该字符集。MYSQL_TYPE_BLOB
表示二进制输入字符串数据。该值被视为具有binary
字符集。也就是说,它被视为一个字节串,不发生任何转换。
下表显示了
从服务器接收的输出值的结构buffer_type
成员
的允许值。MYSQL_BIND
该表显示了接收到的值的 SQL 类型、这些值在结果集元数据中具有的对应类型代码,以及推荐的 C 语言数据类型以绑定到MYSQL_BIND
结构以在不转换的情况下接收 SQL 值。buffer_type
根据您要绑定的 C 语言变量的数据类型选择
值。对于整数类型,您还应该设置is_unsigned
成员以指示变量是有符号的还是无符号的。
表 6.2 MYSQL_BIND 结构允许的输出数据类型
接收值的 SQL 类型 |
buffer_type 价值 |
输出变量 C 类型 |
---|---|---|
TINYINT |
MYSQL_TYPE_TINY |
signed char |
SMALLINT |
MYSQL_TYPE_SHORT |
short int |
MEDIUMINT |
MYSQL_TYPE_INT24 |
int |
INT |
MYSQL_TYPE_LONG |
int |
BIGINT |
MYSQL_TYPE_LONGLONG |
long long int |
FLOAT |
MYSQL_TYPE_FLOAT |
float |
DOUBLE |
MYSQL_TYPE_DOUBLE |
double |
DECIMAL |
MYSQL_TYPE_NEWDECIMAL |
char[] |
YEAR |
MYSQL_TYPE_SHORT |
short int |
TIME |
MYSQL_TYPE_TIME |
MYSQL_TIME |
DATE |
MYSQL_TYPE_DATE |
MYSQL_TIME |
DATETIME |
MYSQL_TYPE_DATETIME |
MYSQL_TIME |
TIMESTAMP |
MYSQL_TYPE_TIMESTAMP |
MYSQL_TIME |
CHAR ,
BINARY
|
MYSQL_TYPE_STRING |
char[] |
VARCHAR ,
VARBINARY
|
MYSQL_TYPE_VAR_STRING |
char[] |
TINYBLOB ,
TINYTEXT
|
MYSQL_TYPE_TINY_BLOB |
char[] |
BLOB ,TEXT
|
MYSQL_TYPE_BLOB |
char[] |
MEDIUMBLOB ,
MEDIUMTEXT
|
MYSQL_TYPE_MEDIUM_BLOB |
char[] |
LONGBLOB ,
LONGTEXT
|
MYSQL_TYPE_LONG_BLOB |
char[] |
BIT |
MYSQL_TYPE_BIT |
char[] |