<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >PDOStatement->closeCursor()</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="PDO Functions" HREF="ref.pdo.html"><LINK REL="PREVIOUS" TITLE="PDOStatement->bindValue()" HREF="function.pdostatement-bindvalue.html"><LINK REL="NEXT" TITLE="PDOStatement->columnCount()" HREF="function.pdostatement-columncount.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.pdostatement-bindvalue.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.pdostatement-columncount.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.PDOStatement-closeCursor" ></A >PDOStatement->closeCursor()</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN177350" ></A ><P > (no version information, might be only in CVS)</P >PDOStatement->closeCursor() -- Closes the cursor, enabling the statement to be executed again. </DIV ><DIV CLASS="refsect1" ><A NAME="AEN177353" ></A ><H2 >说明</H2 >class <B CLASS="classname" >PDOStatement</B > { <BR ></BR >bool <B CLASS="methodname" >closeCursor</B > ( void )<BR ></BR >}<P > <A HREF="function.pdostatement-closecursor.html" >PDOStatement->closeCursor()</A > frees up the connection to the server so that other SQL statements may be issued, but leaves the statement in a state that enables it to be executed again. </P ><P > This method is useful for database drivers that do not support executing a PDOStatement object when a previously executed PDOStatement object still has unfetched rows. If your database driver suffers from this limitation, the problem may manifest itself in an out-of-sequence error. </P ><P > <A HREF="function.pdostatement-closecursor.html" >PDOStatement->closeCursor()</A > is implemented either as an optional driver specific method (allowing for maximum efficiency), or as the generic PDO fallback if no driver specific function is installed. The PDO generic fallback is semantically the same as writing the following code in your PHP script: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#007700">do {<br /> while (</font><font color="#0000BB">$stmt</font><font color="#007700">-></font><font color="#0000BB">fetch</font><font color="#007700">())<br /> ;<br /> if (!</font><font color="#0000BB">$stmt</font><font color="#007700">-></font><font color="#0000BB">nextRowset</font><font color="#007700">())<br /> break;<br />} while (</font><font color="#0000BB">true</font><font color="#007700">);<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN177368" ></A ><H2 >返回值</H2 ><P > 如果成功则返回 <TT CLASS="constant" ><B >TRUE</B ></TT >,失败则返回 <TT CLASS="constant" ><B >FALSE</B ></TT >。 </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN177373" ></A ><H2 >范例</H2 ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN177376" ></A ><P ><B >例 1. A <A HREF="function.pdostatement-closecursor.html" >PDOStatement->closeCursor()</A > example</B ></P ><P > In the following example, the <CODE CLASS="varname" >$stmt</CODE > PDOStatement object returns multiple rows but the application fetches only the first row, leaving the PDOStatement object in a state of having unfetched rows. To ensure that the application will work with all database drivers, the author inserts a call to <A HREF="function.pdostatement-closecursor.html" >PDOStatement->closeCursor()</A > on <CODE CLASS="varname" >$stmt</CODE > before executing the <CODE CLASS="varname" >$otherStmt</CODE > PDOStatement object. </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#FF8000">/* Create a PDOStatement object */<br /></font><font color="#0000BB">$stmt </font><font color="#007700">= </font><font color="#0000BB">$dbh</font><font color="#007700">-></font><font color="#0000BB">prepare</font><font color="#007700">(</font><font color="#DD0000">'SELECT foo FROM bar'</font><font color="#007700">);<br /><br /></font><font color="#FF8000">/* Create a second PDOStatement object */<br /></font><font color="#0000BB">$otherStmt </font><font color="#007700">= </font><font color="#0000BB">$dbh</font><font color="#007700">-></font><font color="#0000BB">prepare</font><font color="#007700">(</font><font color="#DD0000">'SELECT foobaz FROM foobar'</font><font color="#007700">);<br /><br /></font><font color="#FF8000">/* Execute the first statement */<br /></font><font color="#0000BB">$stmt</font><font color="#007700">-></font><font color="#0000BB">execute</font><font color="#007700">();<br /><br /></font><font color="#FF8000">/* Fetch only the first row from the results */<br /></font><font color="#0000BB">$stmt</font><font color="#007700">-></font><font color="#0000BB">fetch</font><font color="#007700">();<br /><br /></font><font color="#FF8000">/* The following call to closeCursor() may be required by some drivers */<br /></font><font color="#0000BB">$stmt</font><font color="#007700">-></font><font color="#0000BB">closeCursor</font><font color="#007700">();<br /><br /></font><font color="#FF8000">/* Now we can execute the second statement */<br /></font><font color="#0000BB">$otherStmt</font><font color="#007700">-></font><font color="#0000BB">execute</font><font color="#007700">();<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN177385" ></A ><H2 >参见</H2 ><P > <P ></P ><TABLE BORDER="0" ><TBODY ><TR ><TD ><A HREF="function.pdostatement-execute.html" >PDOStatement->execute()</A ></TD ></TR ></TBODY ></TABLE ><P ></P > </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.pdostatement-bindvalue.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.pdostatement-columncount.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >PDOStatement->bindValue()</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.pdo.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >PDOStatement->columnCount()</TD ></TR ></TABLE ></DIV ></BODY ></HTML >