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 相关文章推荐
杏林同学录(九)
Oct 09 PHP
解析php中获取系统信息的方法
Jun 25 PHP
php中的PHP_EOL换行符详细解析
Oct 26 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
php清除和销毁session的方法分析
Mar 19 PHP
PHP书写格式详解(必看)
May 23 PHP
Ajax+PHP实现的删除数据功能示例
Feb 12 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 PHP
PHP封装请求类实例分析【基于Yii框架】
Oct 17 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
Dec 12 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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
PHP 和 COM
2006/10/09 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
把pandas转换int型为str型的方法
2019/01/29 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
什么是python的函数体
2020/06/19 Python
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
教师节促销方案
2014/03/22 职场文书
车辆转让协议书
2014/09/24 职场文书
上课说话检讨书
2015/01/27 职场文书
廉洁自律个人总结
2015/02/14 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技