PHP PDOStatement::closeCursor讲解

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();
?>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • PHP PDOStatement::fetchAll讲解

    PDOStatement::fetchAll PDOStatement::fetchAll - 返回一个包含结果集中所有行的数组(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] ) 参数 fetch_style 控制下一行如何返回给调用者.此值必须

  • PHP PDOStatement::errorInfo讲解

    PDOStatement::errorInfo PDOStatement::errorInfo - 获取跟上一次语句句柄操作相关的扩展错误信息(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 array PDOStatement::errorInfo ( void ) PDOStatement::errorInfo() 返回一个关于上一次语句句柄执行操作的错误信息的数组 .该数组包含下列字段: 元素   信息 0     SQLSTATE 错误码(一个由5个字

  • PHP PDOStatement::getColumnMeta讲解

    PDOStatement::getColumnMeta PDOStatement::getColumnMeta - 返回结果集中一列的元数据(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0) 说明 语法 array PDOStatement::getColumnMeta ( int $column ) 检索一个在结果集中以0开始索引的列的元数据作为一个关联数组. 注意:此函数是实验性的.此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改.使用

  • PHP PDOStatement::errorCode讲解

    PDOStatement::errorCode PDOStatement::errorCode - 获取跟上一次语句句柄操作相关的 SQLSTATE(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 string PDOStatement::errorCode ( void ) 与PDO::errorCode()相同,只是PDOStatement::errorCode()只取回 PDOStatement 对象执行操作中的错误码. 返回值 没有返回值. 实例 取回

  • PHP PDOStatement::columnCount讲解

    PDOStatement::columnCount PDOStatement::columnCount - 返回结果集中的列数.(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0) 说明 语法 int PDOStatement::columnCount ( void ) 使用PDOStatement::columnCount()返回由 PDOStatement 对象代表的结果集中的列数. 如果是由PDO::query()返回的 PDOStatement 对象,则列数计算立即可

  • PHP PDOStatement::fetchColumn讲解

    PDOStatement::fetchColumn PDOStatement::fetchColumn - 从结果集中的下一行返回单独的一列.(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0) 说明 语法 string PDOStatement::fetchColumn ([ int $column_number = 0 ] ) 从结果集中的下一行返回单独的一列,如果没有了,则返回 FALSE . 参数 column_number 你想从行里取回的列的索引数字(以0开始的索

  • PHP PDOStatement::execute讲解

    PDOStatement::execute PDOStatement::execute - 执行一条预处理语句(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 bool PDOStatement::execute ([ array $input_parameters ] ) 执行预处理过的语句.如果预处理过的语句含有参数标记,必须选择下面其中一种做法: 调用PDOStatement::bindParam()绑定 PHP 变量到参数标记:如果有的话,通过关联参数

  • PHP PDOStatement::fetch讲解

    PDOStatement::fetch PDOStatement::fetch - 从结果集中获取下一行(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] ) 从一个 PDOStatement 对象相关的结果集中获取

  • PHP PDOStatement::fetchObject讲解

    PDOStatement::fetchObject PDOStatement::fetchObject - 获取下一行并作为一个对象返回.(PHP 5 >= 5.1.0, PECL pdo >= 0.2.4) 说明 语法 mixed PDOStatement::fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] ) 获取下一行并作为一个对象返回.此函数(方法)是使用 PDO::FETCH

  • PHP PDOStatement::getAttribute讲解

    PDOStatement::getAttribute PDOStatement::getAttribute - 检索一个语句属性(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0) 说明 语法 mixed PDOStatement::getAttribute ( int $attribute ) 得到语句的一个属性.当前,不存在通用的属性,只有驱动特定的属性: PDO::ATTR_CURSOR_NAME (Firebird 和 ODBC 特性): 获取 UPDATE ...

随机推荐