mysqli_result::fetch_fields
(PHP 5, PHP 7, PHP 8)
mysqli_result::fetch_fields -- mysqli_fetch_fields — 결과 집합의 필드를 나타내는 객체 배열을 반환합니다.
설명
객체 지향 스타일
public mysqli_result::fetch_fields(): array
절차적 스타일
mysqli_fetch_fields(mysqli_result $result
): array
이 함수는 각 필드에 대해 한 번에 하나의 객체를 반환하는 대신 열이 객체의 배열로 반환된다는 단일 차이점을 제외하고 mysqli_fetch_field() 함수와 동일한 목적을 제공합니다.
매개변수
result
- 절차적 스타일 전용: mysqli_query(), mysqli_store_result(), mysqli_use_result() 또는 mysqli_stmt_get_result()에 의해 반환된 mysqli_result 객체.
반환 값
필드 정의 정보를 포함하는 객체의 배열을 반환합니다.
개체 속성
Attribute | 설명 |
---|---|
name | 열의 이름 |
orgname | 별칭이 지정된 경우 원래 열 이름 |
table | 이 필드가 속한 테이블의 이름(계산되지 않은 경우) |
orgtable | 별칭이 지정된 경우 원래 테이블 이름 |
max_length | 결과 집합에 대한 필드의 최대 너비입니다. |
length | 테이블 정의에 지정된 대로 필드의 너비(바이트)입니다. 이 숫자(바이트)는 사용하는 문자 집합에 따라 테이블 정의 값(문자)과 다를 수 있습니다. 예를 들어, 문자 집합 utf8은 문자당 3바이트이므로 varchar(10)은 utf8(10*3)의 경우 길이 30을 반환하지만 latin1(10*1)의 경우 10을 반환합니다. |
charsetnr | 필드의 문자 집합 번호(id)입니다. |
flags | 필드의 비트 플래그를 나타내는 정수입니다. |
type | 이 필드에 사용된 데이터 유형 |
decimals | 사용된 소수 자릿수(정수 필드의 경우) |
Examples
예제 #1 객체 지향 스타일
<?php
$mysqli = new mysqli("127.0.0.1", "root", "foofoo", "sakila");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
foreach (array('latin1', 'utf8') as $charset) {
// Set character set, to show its impact on some values (e.g., length in bytes)
$mysqli->set_charset($charset);
$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";
echo "======================\n";
echo "Character Set: $charset\n";
echo "======================\n";
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();
}
}
$mysqli->close();
?>
예제 #2 절차적 스타일
<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
foreach (array('latin1', 'utf8') as $charset) {
// Set character set, to show its impact on some values (e.g., length in bytes)
mysqli_set_charset($link, $charset);
$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";
echo "======================\n";
echo "Character Set: $charset\n";
echo "======================\n";
if ($result = mysqli_query($link, $query)) {
/* Get field information for all columns */
$finfo = mysqli_fetch_fields($result);
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);
}
mysqli_free_result($result);
}
}
mysqli_close($link);
?>
위의 예는 다음을 출력합니다.
====================== Character Set: latin1 ====================== Name: actor_id Table: actor Max. Len: 3 Length: 5 charsetnr: 63 Flags: 49699 Type: 2 Name: last_name Table: actor Max. Len: 12 Length: 45 charsetnr: 8 Flags: 20489 Type: 253 ====================== Character Set: utf8 ====================== Name: actor_id Table: actor Max. Len: 3 Length: 5 charsetnr: 63 Flags: 49699 Type: 2 Name: last_name Table: actor Max. Len: 12 Length: 135 charsetnr: 33 Flags: 20489
기타
- mysqli_num_fields() - 결과 집합의 필드 수를 가져옵니다.
- mysqli_fetch_field_direct() - 단일 필드에 대한 메타데이터 가져오기
- mysqli_fetch_field() - 결과 집합의 다음 필드를 반환합니다.