Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 22697 программистов и 1121 робот. Сейчас ищут 705 программистов ...
Приступая к работе

Метаданные

Вернуться к: Краткое руководство

Результирующий набор MySQL содержит метаданные. Эти данные описывают столбцы результирующей таблицы. Все сведения, которые передает MySQL, доступны через mysqli интерфейс. Расширение не изменяет получаемые данные, либо эти изменения незначительны. Различия между версиями MySQL также можно не принимать во внимание.

Метаданные доступны через mysqli_result интерфейс.

Пример #1 Доступ к метаданным результирующей таблицы

<?php
$mysqli 
= new mysqli("example.com""user""password""database");
if (
$mysqli->connect_errno) {
    echo 
"Не удалось подключиться к MySQL: (" $mysqli->connect_errno ") " $mysqli->connect_error;
}

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

Результат выполнения данного примера:

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

Подготавливаемые запросы

Метаданные результирующих наборов, полученных в результате выполнения подготовленных запросов, можно получить аналогичным образом. Подходящий дескриптор mysqli_result можно получить функцией mysqli_stmt_result_metadata().

Пример #2 Prepared statements metadata

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

См. также



Вернуться к: Краткое руководство

© 2024 «PHP.RU — Сообщество PHP-Программистов»
Главная | Форум | Реклама на сайте | Контакты VIP Сувениры
Разработка компании ODware