2
$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”。当我在 Oracle SQL developer 中使用相同的 SQL 查询时,它会显示 4000+ 个计数。我的错误在哪里?列数效果很好..

4

1 回答 1

5

查询仅返回一行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'];
于 2013-06-07T07:28:04.040 回答