mysqli_result::fetch_field_direct

mysqli_fetch_field_direct

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_directRecebe metadados para um único campo

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_field_direct(int $index): object|false

Estilo procedural

mysqli_fetch_field_direct(mysqli_result $result, int $index): object|false

Retorna um objeto que contém informação de definição de campo a partir do conjunto de resultados especificado.

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().

index

O número do campo. Este valor deve estar na faixa de 0 a número de campos - 1.

Valor Retornado

Retorna um objeto que contém informação de definição de campo ou false se nenhuma informação de campo para o valor especificado em index estiver disponível.

Propriedades dos objetos
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("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
    printf("Conexão falhou: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

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

    /* Obtém informação de campo para a coluna 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    $result->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Example #2 Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Obtém informação de campo para a coluna 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    mysqli_free_result($result);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Veja Também