programing

결과 집합에서 문자 집합을 가져오는 방법은 무엇입니까?

lastmoon 2023. 7. 31. 21:46
반응형

결과 집합에서 문자 집합을 가져오는 방법은 무엇입니까?

mysqli_result::fetch_field() 를 반환합니다.type각 열의 속성, 즉 정수 값입니다.

VARCHAR 및 VARB에 대한 정수 값이 동일합니다.초기(0xFD) 열 및 CHAR 및 BINAR에 대해서도 (0xFE) 열을 누릅니다.이러한 열 유형은 다음을 사용하여 탐지할 수 있습니다.MYSQLI_TYPE_STRING그리고.MYSQLI_TYPE_VAR_STRING상수

문자열 열이 BINARY인지 여부를 확인하려면 다음과 같이 하십시오.binary) 또는 열을 다른 문자 집합으로 변환해야 하는지 여부를 확인하려면 문자 집합 이름이 꼭 필요합니다.

그렇지만.....mysqli_result::fetch_field()을 가지고 있습니다.charsetnr문자 집합에 대한 정수를 다시 반환하는 속성입니다.이번에만 모음은 고사하고 캐릭터 세트 이름을 알 방법이 없는 것 같습니까?

그래서 어떻게 하면 문자 집합 이름을 얻을 수 있습니까?mysqli_result?

필드가 이진수인지 확인하기 위해 문자 집합을 알 필요는 없습니다.

이 예를 고려해 보십시오.

   if ($result = $mysqli->query($query)) {

        /* Get field information for all columns */
        $finfo = $result->fetch_fields();

        foreach ($finfo as $val) {
            printf("Name:      %s\n",   $val->name);
            printf("Table:     %s\n",   $val->table);
            printf("Max. Len:  %d\n",   $val->max_length);
            printf("Length:    %d\n",   $val->length);
            printf("charsetnr: %d\n",   $val->charsetnr);
            printf("Flags:     %d\n",   $val->flags);
            printf("Type:      %d\n\n", $val->type);
        }
        $result->free();
    }

$field->flags 속성이 있습니다.비트 128(0x80)을 확인합니다.비트가 설정된 경우 필드는 이진(BINARY, VARBINARY)이고 "이진" 조합을 가집니다.

이진이 아닌 필드에 "이진" 데이터 정렬을 설정할 수 있는지 잘 모르겠습니다.

TL;DR charsetnr목록에 표시된 데이터 집합의 ID입니다.SHOW COLLATION.

숫자로 표시된 열들도 알아채지 않을 수 없었습니다.charsetnr로 설정되었습니다.63이것은 저를 다음과 같은 설명서로 향하게 했습니다.

문자열 데이터 유형에 대한 이진 데이터와 비이진 데이터를 구분하려면 charsetnr 값이 63인지 확인합니다.이 경우 문자 집합은 이진이 아니며 이진 데이터를 나타내는 이진이는 이진이 아닌 이진을 나타냅니다.이렇게 하면 BINARY와 CHAR, VARBINAR과 VARCHAR, BLOB 유형과 텍스트 유형을 구분할 수 있습니다.

다음을 통해 조합 및 문자 집합에 대한 자세한 정보를 검색합니다.

SELECT `COLLATION_NAME`
     , `CHARACTER_SET_NAME`
     , `IS_DEFAULT`
     , `IS_COMPILED`
     , `SORTLEN`
FROM `INFORMATION_SCHEMA`.`COLLATIONS`
WHERE `ID` = ?;
SELECT  IFNULL(COLLATION_NAME, 'binary')
    FROM  `COLUMNS`
    WHERE  table_schema = 'biglim'
      AND  table_name = 'article'

특정 데이터베이스(데이터베이스)에서 특정 테이블과 연관된 조합을 찾습니다.

언급URL : https://stackoverflow.com/questions/51675283/how-to-get-the-character-set-from-a-resultset

반응형