PDOStatement::closeCursor

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::closeCursor — 커서를 닫고 명령문이 다시 실행되도록 합니다.


설명

public PDOStatement::closeCursor(): bool

PDOStatement::closeCursor()는 다른 SQL 문이 발행될 수 있도록 서버에 대한 연결을 해제하지만 명령문은 다시 실행할 수 있는 상태로 둡니다.

이 메서드는 이전에 실행된 PDOStatement 객체에 아직 페치되지 않은 행이 있을 때 PDOStatement 객체 실행을 지원하지 않는 데이터베이스 드라이버에 유용합니다. 데이터베이스 드라이버에 이 제한이 있는 경우 문제가 순서가 맞지 않는 오류로 나타날 수 있습니다.

PDOStatement::closeCursor()는 선택적 드라이버 특정 메서드(최대 효율성 허용)로 구현되거나 드라이버 특정 기능이 설치되지 않은 경우 일반 PDO 폴백으로 구현됩니다. PDO 일반 폴백은 PHP 스크립트에서 다음 코드를 작성하는 것과 의미상 동일합니다.

                  
<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>
                  
                

매개변수

이 함수에는 매개변수가 없습니다.


반환 값

성공하면 true를, 실패하면 false를 반환합니다.


Examples

예제 #1 PDOStatement::closeCursor() 예제

다음 예에서 $stmt PDOStatement 개체는 여러 행을 반환하지만 애플리케이션은 첫 번째 행만 가져오고 PDOStatement 개체는 행을 가져오지 않은 상태로 둡니다. 응용 프로그램이 모든 데이터베이스 드라이버와 함께 작동하도록 하기 위해 작성자는 $otherStmt PDOStatement 개체를 실행하기 전에 $stmt에서 PDOStatement::closeCursor() 호출을 삽입합니다.

                  
<?php
/* Create a PDOStatement object */
$stmt = $dbh->prepare('SELECT foo FROM bar');

/* Create a second PDOStatement object */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');

/* Execute the first statement */
$stmt->execute();

/* Fetch only the first row from the results */
$stmt->fetch();

/* The following call to closeCursor() may be required by some drivers */
$stmt->closeCursor();

/* Now we can execute the second statement */
$otherStmt->execute();
?>
                  
                

기타