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