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/