PHP
数据库 | Database

PDOStatement::closeCursor

PDOStatement::closeCursor

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

PDOStatement :: closeCursor - 关闭游标,使语句再次执行。

描述

public bool PDOStatement::closeCursor ( void )

PDOStatement :: closeCursor()释放与服务器的连接,以便可以发出其他SQL语句,但会使语句处于使其能够再次执行的状态。

当先前执行的PDOStatement对象仍具有未提取的行时,此方法对于不支持执行PDOStatement对象的数据库驱动程序非常有用。如果您的数据库驱动程序受到此限制,则问题可能表现为无序错误。

PDOStatement :: closeCursor()被实现为可选的驱动程序特定方法(允许最大效率),或者作为通用PDO后退(如果没有安装驱动程序特定功能)。PDO通用回退在语义上与在PHP脚本中编写以下代码相同:

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

返回值

成功时返回TRUE或失败时返回FALSE

示例

示例#1 PDOStatement :: closeCursor()示例

在以下示例中,$ stmt PDOStatement对象返回多行,但应用程序只读取第一行,使PDOStatement对象处于未提取行的状态。为了确保该应用程序将与所有数据库驱动程序工作,笔者插入到呼叫PDOStatement对象:: closeCursor()在$语句执行$ otherStmt PDOStatement对象对象之前。

<?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() - 执行准备好的语句

← PDOStatement::bindValue

PDOStatement::columnCount →