23.8.9.1 C API Prepared Statement 유형 코드
MYSQL_BIND
구조의 buffer_type
멤버는 문 매개 변수 또는 결과 세트 컬럼에 바인딩되어있는 C 언어 변수의 데이터 형식을 나타냅니다. 입력의 경우, buffer_type
은 서버로 전송되는 값을 저장하는 변수의 형태를 나타냅니다. 출력의 경우, 그것은 서버에서받은 값을 저장해야 할 변수 유형을 나타냅니다.
다음 표에는 서버로 전송되는 입력 값에 대해 MYSQL_BIND
구조의 buffer_type
멤버에 허용되는 값을 나타냅니다. 표에 사용 가능한 C 변수 형 해당 유형 코드 및 제공 된 값을 변환없이 사용할 수있는 SQL 데이터 형식을 나타냅니다. 바인딩하는 C 언어 변수의 데이터 형식에 따라 buffer_type
값을 선택합니다. 정수형의 경우 is_unsigned
멤버도 설정하여 변수가 부호 첨부 나 부호 없음인지를 보여주십시오.
Input Variable C Type | buffer_type Value | SQL Type of Destination Value |
---|---|---|
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 |
섹션 23.8.9 "C API Prepared Statement 데이터 구조" 에서 is_null
멤버의 설명에 표시된대로 MYSQL_TYPE_NULL
을 사용합니다.
입력 문자열 데이터의 경우 값이 문자 (비 바이너리)인지, 이진 문자열인지에 따라, MYSQL_TYPE_STRING
또는 MYSQL_TYPE_BLOB
을 사용합니다.
MYSQL_TYPE_STRING
는 문자 입력 문자열 데이터를 나타냅니다. 이 값은character_set_client
시스템 변수에 의해 나타나는 문자 세트에 포함되는 것으로 간주됩니다. 서버가 값을 다른 문자 집합으로 컬럼에 저장하는 경우 값을 문자 세트로 변환합니다.MYSQL_TYPE_BLOB
은 바이너리 입력 문자열 데이터를 나타냅니다. 이 값은binary
캐릭터 세트를 가지는 것으로 간주됩니다. 즉, 그것은 바이트 문자열로 처리되며 변환되지 않습니다.
다음 표에는 서버에서 수신되는 출력 값의 MYSQL_BIND
구조의 buffer_type
멤버의 허용되는 값을 나타냅니다. 표는 수신 된 값의 SQL 형, 그러한 값의 결과 집합 메타 데이터에 포함 된 해당 유형 코드 및 변환없이 SQL 값을 받기 위해 MYSQL_BIND
구조에 바인딩 권장 C 언어 데이터 형식을 나타냅니다. 바인딩하는 C 언어 변수의 데이터 형식에 따라 buffer_type
값을 선택합니다. 정수형의 경우 is_unsigned
멤버도 설정하여 변수가 부호 첨부 나 부호 없음인지를 보여주십시오.
SQL Type of Received Value | buffer_type Value | Output Variable C Type |
---|---|---|
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[] |