fetchColumn return boolean false when a row not is found or don't had more rows.
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)
PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора
Возвращает данные одного столбца следующей строки результирующей таблицы.
Если в результате запроса строк больше нет, функция вернёт 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
fetchColumn return boolean false when a row not is found or don't had more rows.
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.