行计数没有错误,但结果错误


Row count no error, but wrong result

$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+计数。我的错在哪里?

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'];