mysqli_result::fetch_fields
mysqli_fetch_fields
(PHP 5, PHP 7, PHP 8)
mysqli_result::fetch_fields -- mysqli_fetch_fields — Retorna um array de objetos representando os campos em um conjunto de resultados
Descrição
Estilo orientado a objetos
Estilo procedural
Esta função serve para o mesmo propósito que a função mysqli_fetch_field() com uma simples diferença, ao invés de retornar um objeto de cada vez para cada campo, as colunas são retornadas como um array de objetos.
Parâmetros
-
result
Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().
Valor Retornado
Retorna um array de objetos contendo informações de definições de campo.
Propriedade | Descrição |
---|---|
name | O nome da coluna |
orgname | O nome original da coluna se foi especificado um apelido |
table | O nome da tabela à qual o campo pertence (se não calculado) |
orgtable | Nome da tabela original se foi especificado um apelido |
def | Não utilizado. Sempre uma string vazia |
db | O nome do banco de dados |
catalog | Não utilizado. Sempre "def" |
max_length | A largura máxima do campo para o conjunto de resultados. A partir do PHP 8.1, este valor é sempre 0 . |
length |
O comprimento do campo em bytes. Para colunas de strings,
o valor do comprimento varia conforme o conjunto de caracteres. Por exemplo,
se o conjunto de caracteres for latin1 , um conjunto de um byte,
o valor de comprimento para uma consulta SELECT 'abc' será 3.
Se o conjunto for utf8mb4 , um conjunto multi-bytes
onde os caracteres podem ter até 4 bytes, o valor de comprimento será 12.
|
charsetnr | O número do conjunto de caracteres do campo. |
flags | Um inteiro representando bits de opções para o campo. |
type | O tipo de dados usado para este campo |
decimals | O número de decimais para campos numéricos, e a precisão em segundos fracionários para campos temporais. |
Exemplos
Example #1 Estilo orientado a objetos
<?php
$mysqli = new mysqli("127.0.0.1", "root", "foofoo", "sakila");
/*verifica a conexão */
if ($mysqli->connect_errno) {
printf("Conexão falhou: %s\n", $mysqli->connect_error);
exit();
}
foreach (array('latin1', 'utf8') as $charset) {
// Define o conjunto de caracteres, para mostrar seu impacto em alguns valores (ex.: comprimento em bytes)
$mysqli->set_charset($charset);
$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";
echo "======================\n";
echo "Conjunto de Caracteres: $charset\n";
echo "======================\n";
if ($result = $mysqli->query($query)) {
/* Obtém informação de campo para todas as colunas */
$finfo = $result->fetch_fields();
foreach ($finfo as $val) {
printf("Nome: %s\n", $val->name);
printf("Tabela: %s\n", $val->table);
printf("Comp. máx: %d\n", $val->max_length);
printf("Comprimento: %d\n", $val->length);
printf("Id conj. carac: %d\n", $val->charsetnr);
printf("Opções: %d\n", $val->flags);
printf("Tipo: %d\n\n", $val->type);
}
$result->free();
}
}
$mysqli->close();
?>
Example #2 Estilo procedural
<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");
/*verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}
foreach (array('latin1', 'utf8') as $charset) {
// Define o conjunto de caracteres, para mostrar seu impacto em alguns valores (ex.: comprimento em bytes)
mysqli_set_charset($link, $charset);
$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";
echo "======================\n";
echo "Conjunto de Caracteres: $charset\n";
echo "======================\n";
if ($result = mysqli_query($link, $query)) {
/* Obtém informação de campo para todas as colunas */
$finfo = mysqli_fetch_fields($result);
foreach ($finfo as $val) {
printf("Nome: %s\n", $val->name);
printf("Tabela: %s\n", $val->table);
printf("Comp. máx: %d\n", $val->max_length);
printf("Comprimento: %d\n", $val->length);
printf("Id conj. carac: %d\n", $val->charsetnr);
printf("Opções: %d\n", $val->flags);
printf("Tipo: %d\n\n", $val->type);
}
mysqli_free_result($result);
}
}
mysqli_close($link);
?>
Os exemplos acima produzirão:
====================== Conjunto de Caracteres: latin1 ====================== Nome: actor_id Tabela: actor Comp. máx: 3 Comprimento: 5 Id conj. carac: 63 Opções: 49699 Tipo: 2 Nome: last_name Tabela: actor Comp. máx: 12 Comprimento: 45 Id conj. carac: 8 Opções: 20489 Tipo: 253 ====================== Conjunto de Caracteres: utf8 ====================== Nome: actor_id Tabela: actor Comp. máx: 3 Comprimento: 5 Id conj. carac: 63 Opções: 49699 Tipo: 2 Nome: last_name Tabela: actor Comp. máx: 12 Comprimento: 135 Id conj. carac: 33 Opções: 20489
Veja Também
- mysqli_num_fields() - Obtém o número de campos no conjunto de resultados
- mysqli_fetch_field_direct() - Recebe metadados para um único campo
- mysqli_fetch_field() - Retorna o próximo campo no conjunto de resultados