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 — Devuelve el número de columnas de un conjunto de resultados
Use PDOStatement::columnCount() para devolver el número de columnas del conjunto representado por el objeto PDOStatement.
S el objeto PDOStatement fue devuelto desde PDO::query(), el número de columnas estará inmediatamente disponible.
Si el objeto PDOStatement fue devuelto desde PDO::prepare(), un número preciso de columnas no estará disponible hasta que se invoque a PDOStatement::execute().
Devuelve el número de columnas del conjunto de resultados representado por el
objeto PDOStatement, incluso si el conjunto de resultados está vacío. Si no hubiera conjunto de resultados,
PDOStatement::columnCount() devuelve 0
.
Ejemplo #1 Contar columnas
Este ejemplo demuestra cómo PDOStatement::columnCount() opera con y sin un conjunto de resultados.
<?php
$gbd = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$gsent = $gbd->prepare("SELECT name, colour FROM fruit");
/* Cuenta el número de columnas del (no existente) conjunto de resultados */
$cuenta_col = $gsent->columnCount();
print("Antes de execute(), el conjunto de resultados tiene $cuenta_col columnas (debería ser 0)\n");
$gsent->execute();
/* Cuenta el número de columnas del conjunto de resultados */
$cuenta_col = $gsent->columnCount();
print("Después de execute(), el conjunto de resultados tiene $cuenta_col columnas (debería ser 2)\n");
?>
El resultado del ejemplo sería:
Antes de execute(), el conjunto de resultados tiene 0 columnas (debería ser 0) Después de execute(), el conjunto de resultados tiene 2 columnas (debería ser 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;
?>