PDOStatement::fetchColumn

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::fetchColumn Возвращает данные одного столбца следующей строки результирующего набора

Описание

public PDOStatement::fetchColumn(int $column = 0): mixed

Возвращает данные одного столбца следующей строки результирующей таблицы. Если в результате запроса строк больше нет, функция вернёт false.

Замечание:

Не следует использовать PDOStatement::fetchColumn() для получения логических полей, так как невозможно отличить значение false от отсутствия оставшихся строк результата. Вместо этого используйте метод PDOStatement::fetch().

Список параметров

column

Номер столбца, данные которого необходимо извлечь. Нумерация начинается с 0. Если параметр не задан, PDOStatement::fetchColumn() выберет данные первого столбца.

Возвращаемые значения

Метод PDOStatement::fetchColumn() возвращает значение одного столбца следующей строки результирующего набора или false, если больше нет строк.

Внимание

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

Ошибки

Выдаёт ошибку уровня E_WARNING, если для атрибута PDO::ATTR_ERRMODE установили режим PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если для атрибута PDO::ATTR_ERRMODE установили режим PDO::ERRMODE_EXCEPTION.

Примеры

Пример #1 Получение значения первого столбца следующей строки

<?php
$sth
= $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

print
"Получение значения первого столбца первой строки:\n";
$result = $sth->fetchColumn();
print
"name = $result\n";

print
"Получение значения второго столбца второй строки:\n";
$result = $sth->fetchColumn(1);
print
"colour = $result\n";
?>

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

Получение значения первого столбца первой строки:
name = lemon
Получение значения второго столбца второй строки:
colour = red

Смотрите также

  • PDO::query() - Подготавливает и выполняет выражение SQL без заполнителей
  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchAll() - Выбирает строки, которые остались в наборе результатов
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::setFetchMode() - Устанавливает режим выборки по умолчанию для объекта запроса

Добавить

Примечания пользователей 3 notes

up
52
PhoneixSegovia at GOOGLE_MAIL_SERVER dot com
14 years ago
fetchColumn return boolean false when a row not is found or don't had more rows.
up
11
seanferd at assmasterdonkeyranch dot com
17 years ago
This is an excellent method for returning a column count. For example:

<?php
$db
= new PDO('mysql:host=localhost;dbname=pictures','user','password');
$pics = $db->query('SELECT COUNT(id) FROM pics');
$this->totalpics = $pics->fetchColumn();
$db = null;
?>
In my case $pics->fetchColumn() returns 641 because that is how many pictures I have in my db.
up
0
theking2(at)king.ma
10 months ago
When migrating from mysqli it is important that while mysqli_result::fetch_column will iterate over subsequent rows PDOStatement::fetchColumn will NOT!

<?php
while ( $row0 = $db->query("SELECT `value` FROM `bool`")->fetchColumn(0) ) {
var_dump( $row0 );
}
?>

is an endless loop unless the first column in the first row of the table bool is "0".
To Top