diff --git a/src/Dibi/Result.php b/src/Dibi/Result.php index 95febde8..b5987221 100644 --- a/src/Dibi/Result.php +++ b/src/Dibi/Result.php @@ -127,6 +127,15 @@ class Result implements IDataSource } + /** + * Returns the number of columns in a result set. + */ + final public function getColumnCount(): int + { + return count($this->types); + } + + /********************* fetching rows ****************d*g**/ diff --git a/tests/dibi/Result.meta.phpt b/tests/dibi/Result.meta.phpt index 253ab3b5..aa821a36 100644 --- a/tests/dibi/Result.meta.phpt +++ b/tests/dibi/Result.meta.phpt @@ -13,12 +13,17 @@ require __DIR__ . '/bootstrap.php'; $conn = new Dibi\Connection($config); $conn->loadFile(__DIR__ . "/data/$config[system].sql"); -$info = $conn->query(' +$res = $conn->query(' SELECT products.product_id, orders.order_id, customers.name, products.product_id + 1 AS [xXx] FROM ([products] INNER JOIN [orders] ON [products.product_id] = [orders.product_id]) INNER JOIN [customers] ON [orders.customer_id] = [customers.customer_id] -')->getInfo(); +'); + +$info = $res->getInfo(); + + +Assert::same(4, $res->getColumnCount()); Assert::same(