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();
?>
기타
- PDOStatement::execute() - 준비된 명령문을 실행합니다.