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(); ?>
相關文章
- PHP 變量
- PHP echo 和 print 語句
- PHP 運算符
- PHP 函數
- PHP 文件上傳
- PHP Cookie
- PHP Secure E-mails
- PHP array_change_key_case() 函數
- PHP array_column() 函數
- PHP array_diff_key() 函數
- PHP array_merge() 函數
- PHP array_replace_recursive() 函數
- PHP array_shift() 函數
- PHP natcasesort() 函數
- PHP next() 函數
- PHP prev() 函數
- PHP reset() 函數
- PHP cURL 函數
- PHP FTP 函數
- PHP HTTP 函數