PDOStatement::fetchColumn
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора
Описание
Возвращает данные одного столбца следующей строки результирующей таблицы.
Если в результате запроса строк больше нет, функция вернет FALSE
.
Замечание:
Не следует использовать PDOStatement::fetchColumn() для получения булевых полей, так как невозможно отличить значение
FALSE
от отсутствия оставшихся строк результата. Вместо этого используйте метод PDOStatement::fetch().
Список параметров
-
column_number
-
Номер столбца, данные которого необходимо извлечь. Нумерация начинается с 0. Если параметр не задан, PDOStatement::fetchColumn() выберет данные первого столбца.
Возвращаемые значения
PDOStatement::fetchColumn() возвращает значение одного столбца следующей строки результирующего набора.
При использовании PDOStatement::fetchColumn() для извлечения данных из результирующего набора невозможно получить значение другого столбца той же строки.
Примеры
Пример #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
- PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
- PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
- PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
- PDOStatement::setFetchMode() - Задает режим выборки по умолчанию для объекта запроса
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Уровни абстракции
- Объекты данных PHP
- Функция PDOStatement::bindColumn() - Связывает столбец с PHP переменной
- Функция PDOStatement::bindParam() - Привязывает параметр запроса к переменной
- Функция PDOStatement::bindValue() - Связывает параметр с заданным значением
- Функция PDOStatement::closeCursor() - Закрывает курсор, переводя запрос в состояние готовности к повторному запуску
- Функция PDOStatement::columnCount() - Возвращает количество столбцов в результирующем наборе
- Функция PDOStatement::debugDumpParams() - Вывод информации о подготовленной SQL команде в целях отладки
- Функция PDOStatement::errorCode() - Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement
- PDOStatement::errorInfo
- Функция PDOStatement::execute() - Запускает подготовленный запрос на выполнение
- Функция PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
- Функция PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
- Функция PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
- Функция PDOStatement::fetchObject() - Извлекает следующую строку и возвращает ее в виде объекта
- Функция PDOStatement::getAttribute() - Получение значения атрибута запроса PDOStatement
- Функция PDOStatement::getColumnMeta() - Возвращает метаданные столбца в результирующей таблице
- Функция PDOStatement::nextRowset() - Переход к следующему набору строк в результате запроса
- Функция PDOStatement::rowCount() - Возвращает количество строк, модифицированных последним SQL запросом
- Функция PDOStatement::setAttribute() - Присваивает атрибут объекту PDOStatement
- Функция PDOStatement::setFetchMode() - Задает режим выборки по умолчанию для объекта запроса
Коментарии
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.
fetchColumn return boolean false when a row not is found or don't had more rows.
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".