2013-06-07 3 views
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 이상 카운트가 발생합니다. 내 실수는 어디에서 났을까요? 열 수는 잘 작동합니다.행 수는 오류가 아니지만 잘못되었습니다.

답변

5

COUNT() 쿼리는 하나의 행만 반환하므로 oci_fetch_assoc() 호출에서 가져와야합니다. 그것은 작동하지 않습니다

SELECT COUNT(1) mycount FROM ... 

$row = oci_fetch_assoc($stmt); 
echo $row['MYCOUNT']; 
+0

: 당신이하는 일은 항상 1

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

일 또는 수에게 별칭을 줄 것이다 결과 집합의 행을 계산합니다. 알다시피, 그것은 당신이 말한 것처럼 내 쿼리에 정의되어 있음에도 불구하고 "mycount"가 정의되지 않았다. –

+0

'print_r ($ row);의 결과 표시 – MrCode

+0

배열 ([MYCOUNT] => 4341) –

관련 문제