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 travbé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