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 相关文章推荐
新安装的MySQL数据库需要注意的安全知识
Jul 30 PHP
php写的AES加密解密类分享
Jun 20 PHP
php无限极分类递归排序实现方法
Nov 11 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
php中socket通信机制实例详解
Jan 03 PHP
试用php中oci8扩展
Jun 18 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
Laravel与CI框架中截取字符串函数
May 08 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP实现统计代码行数小工具
Sep 19 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
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python搭建简易服务器分析与实现
2012/12/15 Python
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
人机交互程序 python实现人机对话
2017/11/14 Python
Flask框架web开发之零基础入门
2018/12/10 Python
浅谈Python 递归算法指归
2019/08/22 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
python、Matlab求定积分的实现
2019/11/20 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
浅谈Python __init__.py的作用
2020/10/28 Python
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
日期和时间问题
2015/01/04 面试题
家长学校培训材料
2014/08/20 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js