PDOStatement->closeCursor()とは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > PDOStatement->closeCursor()の意味・解説 

PDOStatement->closeCursor()

(PHP 5 >= 5.1.0)
PDOStatement->closeCursor() — カーソルを閉じてステートメントを再実行できるようにする

説明

class PDOStatement {
bool closeCursor ( void )
} PDOStatement->closeCursor() は、 他の SQL ステートメントを発行できるようにサーバへの接続を解放しますが、 ステートメントは再実行可能な状態のまま残されます。
このメソッドは以前に実行された PDOStatement オブジェクトが行をまだフェッチしていない場合に PDOStatement オブジェクトの実行をサポートしていないデータベースドライバに対して有用です。 もし使用しているデータベースドライバがこの制限を受ける場合、 out-of-sequence エラーが出力されます。
PDOStatement->closeCursor() は、 オプションのドライバ固有のメソッド (最大の効率を得るため) もしくはドライバ固有の関数がインストールされていない場合の汎用的な PDO フォールバックとして実装されています。 汎用的な PDO フォールバックは、PHP スクリプト中に以下のようなコードを書くことと意味的に等価です。 <?php
do {
   while ($stmt->fetch())
       ;
   if (!$stmt->nextRowset())
       break;
} while (true);
?>

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例 1670. PDOStatement->closeCursor() の例
以下の例では、PDOStatement オブジェクト $stmt は複数の行を返しますが、このアプリケーションは先頭行のみフェッチし、 PDOStatement オブジェクトをフェッチしていない行がある状態のままにします。 このアプリケーションがが全てのデータベースドライバで動作するよう、 PDOStatement オブジェクト $otherStmt を実行する前に $stmt に対して PDOStatement->closeCursor() の呼び出しを挿入しています。
<?php
/* PDOStatement オブジェクトを生成する */
$stmt = $dbh->prepare('SELECT foo FROM bar');

/* 第二の PDOStatement オブジェクトを生成する */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');

/* 最初の文を実行する */
$stmt->execute();

/* 結果から先頭行のみフェッチする */
$stmt->fetch();

/* 続く closeCursor() のコールはいくつかのドライバでは必要となる */
$stmt->closeCursor();

/* ここで第二の文を実行することができる */
$otherStmt->execute();
?>


参考

PDOStatement->execute()



このページでは「PHP関数リファレンス」からPDOStatement->closeCursor()を検索した結果を表示しています。
Weblioに収録されているすべての辞書からPDOStatement->closeCursor()を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からPDOStatement->closeCursor() を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「PDOStatement->closeCursor()」の関連用語

PDOStatement->closeCursor()のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



PDOStatement->closeCursor()のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.

©2024 GRAS Group, Inc.RSS