首页
学习
活动
专区
工具
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 →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com