首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PDOStatement::closeCursor

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

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

描述

代码语言:javascript
复制
public bool PDOStatement::closeCursor ( void )

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

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

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

代码语言:javascript
复制
<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>

返回值

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

示例

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

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

代码语言:javascript
复制
<?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 →

扫码关注腾讯云开发者

领取腾讯云代金券