Les méta-données

Un jeu de résultats MySQL contient des méta-données. Elles décrivent les colonnes trouvées dans le jeu de résultats. Toutes les méta-données envoyées par MySQL sont accessibles via l'interface mysqli. L'extension n'effectue que trÚs peu (voire, pas du tout) de modification sur les informations qu'elle reçoit. Les différences entre les versions MySQL ne sont pas identiques.

Les mĂ©ta-donnĂ©es peuvent ĂȘtre consultĂ©es via l'interface mysqli_result.

Exemple #1 AccÚs aux méta-données du jeu de résultats

<?php

$mysqli
= new mysqli("example.com", "user", "password", "database");
if (
$mysqli->connect_errno) {
echo
"Échec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

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

L'exemple ci-dessus va afficher :

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)
  }
}

RequĂȘtes prĂ©parĂ©es

Les mĂ©ta-donnĂ©es des jeux de rĂ©sultats créés en utilisant des requĂȘtes prĂ©parĂ©es sont accessibles de la mĂȘme façon. Un gestionnaire mysqli_result utilisable est retournĂ© par la fonction mysqli_stmt::result_metadata().

Exemple #2 MĂ©ta-donnĂ©es via des requĂȘtes prĂ©parĂ©es

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$stmt = $mysqli->prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$stmt->execute();

$result = $stmt->result_metadata();
var_dump($result->fetch_fields());

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.