db2_fetch_row

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row — 결과 세트 포인터를 다음 행 또는 요청된 행으로 설정합니다.


설명

db2_fetch_row(resource $stmt, int $row_number = ?): bool

db2_fetch_row()를 사용하여 결과 세트를 반복하거나 스크롤 가능한 커서를 요청한 경우 결과 세트의 특정 행을 가리키십시오.

결과 세트에서 개별 필드를 검색하려면 db2_result() 함수를 호출하십시오.

db2_fetch_row()db2_result()를 호출하는 대신 대부분의 애플리케이션은 db2_fetch_assoc(), db2_fetch_both() 또는 db2_fetch_array() 중 하나를 호출하여 결과 세트 포인터를 진행하고 완전한 행을 배열로 리턴합니다.


매개변수

stmt
유효한 stmt 리소스입니다.
row_number
스크롤 가능한 커서를 사용하여 결과 집합에서 특정 행 번호를 요청할 수 있습니다. 행 번호 매기기는 1-인덱싱됩니다.

반환 값

요청된 행이 결과 집합에 있으면 true를 반환합니다. 요청한 행이 결과 집합에 없으면 false를 반환합니다.


Examples

예제 #1 결과 집합 반복

다음 예는 db2_fetch_row()를 사용하여 결과 세트를 반복하고 db2_result()를 사용하여 결과 세트에서 열을 검색하는 방법을 보여줍니다.

                  
<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 1);
    print "$name $breed";
}
?>
                  
                

위의 예는 다음을 출력합니다.

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride
                

예제 #2 db2_fetch_row/db2_result에 대한 i5/OS 권장 대안

i5/OS에서는 db2_fetch_row()/db2_result()보다 db2_fetch_both(), db2_fetch_array() 또는 db2_fetch_object()를 사용하는 것이 좋습니다. 일반적으로 db2_fetch_row()/db2_result()는 DBCS 애플리케이션에서 가능한 잘림을 포함하여 EBCIDIC에서 ASCII로의 변환에서 다양한 열 유형에 더 많은 문제가 있습니다. 또한 db2_fetch_both(), db2_fetch_array()db2_fetch_object()의 성능이 db2_fetch_row()/db2_result()보다 우수하다는 것을 알 수 있습니다.

                 
<?php
  $conn = db2_connect("","","");
  $sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_both($stmt)){
    echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_array($stmt)){
    echo "<br>db2_fetch_array {$row[1]}  {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_object($stmt)){
    echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
  }
  db2_close($conn);
?>
                 
               

위의 예는 다음을 출력합니다.

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000
               

기타

  • db2_fetch_array() - 결과 집합의 행을 나타내는 열 위치로 인덱싱된 배열을 반환합니다.
  • db2_fetch_assoc() - 결과 집합의 행을 나타내는 열 이름으로 인덱싱된 배열을 반환합니다.
  • db2_fetch_both() - 결과 집합의 행을 나타내는 열 이름과 위치로 인덱싱된 배열을 반환합니다.
  • db2_fetch_object() - 가져온 행의 열을 나타내는 속성이 있는 개체를 반환합니다.
  • db2_result() - 결과 집합의 행에서 단일 열을 반환합니다.