PHP PDOStatement::closeCursor講解

今天小編就爲大家分享一篇關於PHP PDOStatement::closeCursor講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

PDOStatement::closeCursor

PDOStatement::closeCursor — 關閉遊標,使語句能再次被執行。(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0)

說明

語法

bool PDOStatement::closeCursor ( void )

PDOStatement::closeCursor()釋放到數據庫服務的連接,以便發出其他 SQL 語句,但使語句處於一個可以被再次執行的狀態。

當上一個執行的 PDOStatement 對象仍有未取行時,此方法對那些不支持再執行一個PDOStatement 對象的數據庫驅動非常有用。 如果數據庫驅動受此限制,則可能出現失序錯誤的問題。

PDOStatement::closeCursor()要麼是一個可選驅動的特有方法(效率最高)來實現,要麼是在沒有驅動特定的功能時作爲一般的PDO 備用來實現。一般的備用語義上與下面的 PHP 代碼相同:

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

返回值

成功時返回 TRUE, 或者在失敗時返回 FALSE。

實例

一個PDOStatement::closeCursor()的例子

在下面例子中,$stmt PDOStatement 對象返回多行,但應用程序只取第一行,讓 PDOStatement 對象處於一個有未取行的狀態。爲確保應用程序對所有數據庫驅動都能正常運行,在執行 $otherStmt PDOStatement 對象前,$stmt 調用一次 PDOStatement::closeCursor()

<?php
/* 創建一個 PDOStatement 對象 */
$stmt = $dbh->prepare('SELECT foo FROM bar');
/* 創建第二個 PDOStatement 對象 */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');
/* 執行第一條語句 */
$stmt->execute();
/* 從結果集中只取出第一行 */
$stmt->fetch();
/* The following call to closeCursor() may be required by some drivers */
$stmt->closeCursor();
/* 現在可以執行第二條語句了 */
$otherStmt->execute();
?>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章