PHP PDOStatement::closeCursor讲解


Posted in PHP onJanuary 30, 2019

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获取后台Job管理的实现代码
Jun 10 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
关于PHP内存溢出问题的解决方法
Jun 25 PHP
php常量详细解析
Oct 27 PHP
php创建无限级树型菜单
Nov 05 PHP
深入php内核之php in array
Nov 10 PHP
php实现购物车功能(上)
Jul 23 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 PHP
PHP对象、模式与实践之高级特性分析
Dec 08 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
利用Laravel事件系统如何实现登录日志的记录详解
May 20 PHP
PHP实现唤起微信支付功能
Feb 18 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 #PHP
PHP PDOStatement::bindValue讲解
Jan 30 #PHP
PHP PDOStatement::bindParam讲解
Jan 30 #PHP
PHP PDOStatement::bindColumn讲解
Jan 30 #PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 #PHP
PDO::setAttribute讲解
Jan 29 #PHP
PDO::rollBack讲解
Jan 29 #PHP
You might like
mayfish 数据入库验证代码
2010/04/30 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
php类自动加载器实现方法
2015/07/28 PHP
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
Python语言进阶知识点总结
2019/05/28 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
Python调用Windows命令打印文件
2020/02/07 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
商务邀请函范文
2014/01/14 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
感恩节活动策划方案
2014/05/16 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
考研复习计划
2015/01/19 职场文书
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android