When you use query method, You'll get count right away
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$sth = $dbh->query("SELECT name, colour FROM fruit");
$count = $sth->columnCount();
echo 'query count is '.$count;
?>
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
PDOStatement::columnCount — Возвращает количество столбцов в результирующем наборе
Используйте PDOStatement::columnCount(), чтобы узнать количество столбцов в результирующем наборе, который представляет объект PDOStatement.
Если объект PDOStatement был возвращён из метода PDO::query(), число столбцов можно узнать сразу же.
Если объект PDOStatement был возвращён из метода PDO::prepare(), точное количество столбцов можно будет узнать только после запуска метода PDOStatement::execute().
У этой функции нет параметров.
Возвращает количество столбцов в результирующем наборе запроса
PDOStatement, даже если он пуст. Если результирующего набора нет,
PDOStatement::columnCount() возвращает 0
.
Выдаёт ошибку уровня E_WARNING
, если атрибуту PDO::ATTR_ERRMODE
установлено значение PDO::ERRMODE_WARNING
.
Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE
установлено значение PDO::ERRMODE_EXCEPTION
.
Пример #1 Подсчёт столбцов
В этом примере показано, как PDOStatement::columnCount() работает в случае наличия и отсутствия результирующего набора.
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
/* Подсчёт количества столбцов в (несуществующем) результирующем наборе */
$colcount = $sth->columnCount();
print "Перед вызовом execute(), в результирующем наборе $colcount столбцов (должно быть 0)\n";
$sth->execute();
/* Подсчёт количества столбцов в результирующем наборе */
$colcount = $sth->columnCount();
print "После вызова execute(), в результирующем наборе $colcount столбцов (должно быть 2)\n";
?>
Результат выполнения приведённого примера:
Перед вызовом execute(), в результирующем наборе 0 столбцов (должно быть 0) После вызова execute(), в результирующем наборе 2 столбцов (должно быть 2)
When you use query method, You'll get count right away
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$sth = $dbh->query("SELECT name, colour FROM fruit");
$count = $sth->columnCount();
echo 'query count is '.$count;
?>