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代码包装修正版
Mar 15 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
PHP分多步骤填写发布信息的简单方法实例代码
Sep 23 PHP
php中利用explode函数分割字符串到数组
Feb 08 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
详细解读php的命名空间(二)
Feb 21 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
关于laravel5.5的定时任务详解(demo)
Oct 23 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
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
用python 制作图片转pdf工具
2015/01/30 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
python3 字符串知识点学习笔记
2020/02/08 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
servlet面试题
2012/08/20 面试题
店长岗位职责
2013/11/21 职场文书
社区国庆节活动总结
2015/03/23 职场文书
会议营销主持词
2015/07/03 职场文书
禁毒主题班会教案
2015/08/14 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
一些让Python代码简洁的实用技巧总结
2021/08/23 Python