Metadatos

Un conjunto de resultados de MySQL contiene metadatos. Los metadatos describen las columnas encontradas en el conjunto de resultados. Todos los metadatos enviados por MySQL son accesibles a través de la interfaz de mysqli. La extensión realiza cambios insignificantes o no realiza ninguno a la información que recibe. La diferencias entre versiones del servidor MySQL no están alineadas.

A los metadatos se puede acceder a través de la interfaz mysqli_result.

Ejemplo #1 Acceder a los metadatos de un conjunto de resultados

<?php
$mysqli
= new mysqli("ejemplo.com", "usuario", "contraseña", "basedatos");
if (
$mysqli->connect_errno) {
echo
"Falló la conexión a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$resultado = $mysqli->query("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
var_dump($resultado->fetch_fields());
?>

El resultado del ejemplo sería:

array(2) {
  [0]=>
  object(stdClass)#3 (13) {
    ["name"]=>
    string(4) "_one"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(1)
    ["length"]=>
    int(1)
    ["charsetnr"]=>
    int(63)
    ["flags"]=>
    int(32897)
    ["type"]=>
    int(8)
    ["decimals"]=>
    int(0)
  }
  [1]=>
  object(stdClass)#4 (13) {
    ["name"]=>
    string(4) "_two"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(5)
    ["length"]=>
    int(5)
    ["charsetnr"]=>
    int(8)
    ["flags"]=>
    int(1)
    ["type"]=>
    int(253)
    ["decimals"]=>
    int(31)
  }
}

Sentencias preparadas

A los metadatos de un conjunto de resultados creado usando sentencias preparadas se accede de la misma manera. Un gestor de mysqli_result apropiado es devuelto por mysqli_stmt_result_metadata().

Ejemplo #2 Metadatos de sentencias preparadas

<?php
$sentencia
= $mysqli->prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$sentencia->execute();
$resultado = $sentencia->result_metadata();
var_dump($resultado->fetch_fields());
?>

Véase también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top