English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PHP MySQLi Руководство по справочникам
Функция mysqli_fetch_field_direct()��取 метаданные одного поля
PHP объект результата (mysqli_result класса) представляет MySQL результат, возвращаемый SELECT или DESCRIBE или EXPLAIN запросами.
Функция mysqli_fetch_field_direct() принимает объект результата и целое число, представляющее номер поля, и возвращает определение указанного столбца/поля в виде объекта.
mysqli_fetch_field_direct($result, $field);
Номер | Параметры и описание |
---|---|
1 | result(обязателен) Это идентификатор объекта, представляющего результат. |
2 | field(обязателен) целое значение, представляющее номер поля, для которого необходимо получить метаданные/информацию о определении. |
Функция PHP mysqli_fetch_field_direct() возвращает объект, который содержит информацию о определении указанного поля. Если указанное поле (число) недоступно, эта функция возвращаетFALSE.
Возвращаемый объект содержит следующие атрибуты:
name - имя столбца
orgname - исходное имя столбца (если указан别名)
table - имя таблицы
orgtable - исходное имя таблицы (если указан别名)
def - значение по умолчанию для поля
max_length - максимальная ширина поля
length - ширина поля, указанная в определении таблицы
charsetnr - номер кодировки символов поля
flags - битовые флаги поля
type - тип данных для поля
decimals - целочисленные поля, количество знаков после запятой
Эта функция была введена в PHP версии 5 и может использоваться во всех более поздних версиях.
Ниже приведен пример демонстрацииmysqli_fetch_field_direct()Использование функции (по стилю orientated to process), возвращает метаданные третьего поля (столбца) в наборе результатов и выводит имя поля, таблицу и максимальную длину, тип данных и номер кодировки символов поля:
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("Создание таблицы.....\n"); mysqli_query($con, "INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India')"); mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); mysqli_query($con, "INSERT INTO myplayers values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')"); print("Insert record.....\n"); //Retrieve the content of the table $res = mysqli_query($con, "SELECT * FROM myplayers"); //Get metadata of the third field $info = mysqli_fetch_field_direct($res, 2); print("Имя: ". $info->name. "\n"); print("Таблица: ". $info->table. "\n"); print("Максимальная длина: ". $info->max_length. "\n"); print("Флаги: ". $info->flags. "\n"); print("Тип: ". $info->type. "\n"); print("Определение: ". $info->def. "\n"); print("Система кодирования: ". $info->charsetnr. "\n"); //Конец инструкции mysqli_free_result($res); //Закрытие подключения mysqli_close($con); ?>
Результат вывода
Создание таблицы..... Insert record..... Name: Last_Name Table: myplayers Max Length: 10 Flags: 0 Type: 253
The syntax of this function in object-oriented style is$result->fetch_field_direct();。The following is the metadata of the second field (column) of the result set returned by this function in object-oriented style, and outputs the field name, table, maximum length, data type, and character set number of the field:
<?php //Establish connection $con = new mysqli("localhost", "root", "password", "mydb"); $con->query("CREATE TABLE Test(Name VARCHAR(255), AGE INT)"); $con->query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)"); print("Создание таблицы.....\n"); $stmt = $con->prepare("SELECT * FROM Test WHERE Name in(?, ?)"); $stmt->bind_param("ss", $name1, $name2); $name1 = 'Raju'; $name2 = 'Rahman'; //Выполнение инструкции $stmt->execute(); //Извлечение результатов $result = $stmt->get_result(); //Получение метаданных второго поля $info = $result->fetch_field_direct(1); print("Имя: ". $info->name. "\n"); print("Таблица: ". $info->table. "\n"); print("Максимальная длина: ". $info->max_length. "\n"); print("Флаги: ". $info->flags. "\n"); print("Тип: ". $info->type. "\n"); print("Определение: ". $info->def. "\n"); print("Система кодирования: ". $info->charsetnr. "\n"); //Конец инструкции $stmt->close(); //Закрытие подключения $con->close(); ?>
Результат вывода
Создание таблицы..... Имя: AGE Таблица: Test Максимальная длина: 0 Флаги: 32768 Тип: 3 Определение: Система кодирования: 63