PHP 8.1: MySQLi: fetch_column function
Еще одно предложение внесенное Kamil Tekiela было включено в релиз РНР 8.1
Начиная с этого релиза еще один метод стал доступен в классе mysqli - метод fetch_column ранее имплементированный в библиотеке PDO
Создадим маленькую тестовую таблицу
create table persons (
id int primary key,
name varchar(64),
age tinyint
);
insert into persons values (10, 'Alice', 18), (20, 'Bob', 22);
+====+=======+=====+
| id | name | age |
+====+=======+=====+
| 10 | Alice | 18 |
| 20 | Bob | 22 |
+----+-------+-----+$result = $mysqli->query("SELECT name FROM persons WHERE id = 10");
echo $result->fetch_column();
//AliceВ случае если запрос возвращает несколько колонок функция fetch_column может вернуть значение из столбца номер которого передан в качестве параметра функции (нумерация колонок начинается с 0).
$result = $mysqli->query("SELECT name, age FROM persons WHERE id = 10");
echo $result->fetch_column(1);
//18Здесь можно выполнить код PHP онлайн
Как и в случае с другими методами fetch_*, этот также перемещает внутренний указатель результата на следующую строку при вызове. Таким образом, вы не можете использовать fetch_column(i) для цикла с одним столбцом записи. Следующий пример демонстрирует эту ошибку:
<?php
$result = $mysqli->query("SELECT name, age FROM persons");
$name = $result->fetch_column(0);
$age = $result->fetch_column(1);
// Returns Alice name with Bob's age
printf("Name: %s, age: %d", $name, $age);https://phpize.online/sql/mysql57/b77bf62cd00f67bb433719a530ce2c8c/php/php81/d39ac72d052aa9f0009754256c9eec4a/