Количество строк без ошибок, но неправильный результат


$rowcount = 'SELECT COUNT(1) FROM (select * from isk.edi_site where postal_code = 123456)';
$stmt= oci_parse($conn, $rowcount);
oci_execute($stmt);
$num_row = oci_fetch_assoc($stmt);
$num = count($num_row, COUNT_RECURSIVE);
echo $num;

Он подсчитывает и возвращает число "1". Когда я использую один и тот же SQL-запрос в Oracle SQL developer, он повторяет число 4000+. Где была бы моя ошибка? Счетчик столбцов работает хорошо..

 2
Author: MrCode, 2013-06-07

1 answers

Запрос COUNT() возвращает только одну строку, поэтому вам нужно получить ее из вызова oci_fetch_assoc(). То, что вы делаете, - это подсчет строк в результирующем наборе, который всегда будет равен 1.

$row = oci_fetch_assoc($stmt);
echo $row['COUNT(1)'];

Или дайте графу псевдоним:

SELECT COUNT(1) mycount FROM ...

$row = oci_fetch_assoc($stmt);
echo $row['MYCOUNT'];
 5
Author: MrCode, 2013-10-27 16:23:54