Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 05cd670d8a02b2b4a0ffb1756f2e8308 > files > 8454

php-manual-zh-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>oci_bind_array_by_name</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="PHP 手册"
HREF="index.html"><LINK
REL="UP"
TITLE="Oracle 函数"
HREF="ref.oci8.html"><LINK
REL="PREVIOUS"
TITLE="Oracle 函数"
HREF="ref.oci8.html"><LINK
REL="NEXT"
TITLE="oci_bind_by_name"
HREF="function.oci-bind-by-name.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="ref.oci8.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="function.oci-bind-by-name.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="function.oci-bind-array-by-name"
></A
>oci_bind_array_by_name</H1
><DIV
CLASS="refnamediv"
><A
NAME="AEN156542"
></A
><P
>    (no version information, might be only in CVS)</P
>oci_bind_array_by_name&nbsp;--&nbsp;Binds PHP array to Oracle PL/SQL array by name</DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN156545"
></A
><H2
>说明</H2
>bool <B
CLASS="methodname"
>oci_bind_array_by_name</B
> ( resource statement, string name, array &#38;var_array, int max_table_length [, int max_item_length [, int type]] )<BR
></BR
><P
>&#13;   Binds the PHP array <CODE
CLASS="parameter"
>var_array</CODE
> to the Oracle
   placeholder <CODE
CLASS="parameter"
>name</CODE
>, which points to Oracle PL/SQL
   array. Whether it will be used for input or output will be determined at
   run-time. 
  </P
></DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN156571"
></A
><H2
>参数</H2
><P
>&#13;   <P
></P
><DIV
CLASS="variablelist"
><DL
><DT
><CODE
CLASS="parameter"
>statement</CODE
></DT
><DD
><P
>&#13;       A valid OCI statement identifier.
      </P
></DD
><DT
><CODE
CLASS="parameter"
>name</CODE
></DT
><DD
><P
>&#13;       The Oracle placeholder.
      </P
></DD
><DT
><CODE
CLASS="parameter"
>var_array</CODE
></DT
><DD
><P
>&#13;       An array.
      </P
></DD
><DT
><CODE
CLASS="parameter"
>max_table_length</CODE
></DT
><DD
><P
>&#13;       Sets the maximum length both for incoming and result arrays.
      </P
></DD
><DT
><CODE
CLASS="parameter"
>max_item_length</CODE
></DT
><DD
><P
>&#13;       Sets maximum length for array items. If not specified or equals to -1,
       <B
CLASS="function"
>oci_bind_array_by_name()</B
> will use find the longest
       element in the incoming array and will use it as maximum length for
       array items.
      </P
></DD
><DT
><CODE
CLASS="parameter"
>type</CODE
></DT
><DD
><P
>&#13;       Should be used to set the type of PL/SQL array items. See list of
       available types below:
      </P
><P
>&#13;       <P
></P
><UL
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_NUM</B
></TT
> - for arrays of NUMBER.
         </P
></LI
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_INT</B
></TT
> - for arrays of INTEGER (Note: INTEGER
          it is actually a synonym for NUMBER(38), but
          <TT
CLASS="constant"
><B
>SQLT_NUM</B
></TT
> type won't work in this case even
          though they are synonyms).
         </P
></LI
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_FLT</B
></TT
> - for arrays of FLOAT.
         </P
></LI
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_AFC</B
></TT
> - for arrays of CHAR.
         </P
></LI
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_CHR</B
></TT
> - for arrays of VARCHAR2.
         </P
></LI
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_VCS</B
></TT
> - for arrays of VARCHAR.
         </P
></LI
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_AVC</B
></TT
> - for arrays of CHARZ.
         </P
></LI
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_STR</B
></TT
> - for arrays of STRING.
         </P
></LI
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_LVC</B
></TT
> - for arrays of LONG VARCHAR.
         </P
></LI
><LI
><P
>&#13;          <TT
CLASS="constant"
><B
>SQLT_ODT</B
></TT
> - for arrays of DATE.
         </P
></LI
></UL
>
      </P
></DD
></DL
></DIV
>
  </P
></DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN156639"
></A
><H2
>返回值</H2
><P
>&#13;   如果成功则返回 <TT
CLASS="constant"
><B
>TRUE</B
></TT
>,失败则返回 <TT
CLASS="constant"
><B
>FALSE</B
></TT
>。
  </P
></DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN156644"
></A
><H2
>范例</H2
><P
>&#13;   <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN156647"
></A
><P
><B
>例 1. <B
CLASS="function"
>oci_bind_array_by_name()</B
> example</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /><br />$c </font><font color="#007700">= </font><font color="#0000BB">oci_connect</font><font color="#007700">(</font><font color="#DD0000">"scott"</font><font color="#007700">, </font><font color="#DD0000">"tiger"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$create </font><font color="#007700">= </font><font color="#DD0000">"CREATE TABLE bind_example(name VARCHAR(20))"</font><font color="#007700">;<br /></font><font color="#0000BB">$statement </font><font color="#007700">= </font><font color="#0000BB">oci_parse</font><font color="#007700">(</font><font color="#0000BB">$c</font><font color="#007700">, </font><font color="#0000BB">$create</font><font color="#007700">);<br /></font><font color="#0000BB">oci_execute</font><font color="#007700">(</font><font color="#0000BB">$statement</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$create_pkg </font><font color="#007700">= </font><font color="#DD0000">"<br />CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS<br />&nbsp;&nbsp;TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;<br />&nbsp;&nbsp;PROCEDURE iobind(c1 IN OUT ARRTYPE);<br />END ARRAYBINDPKG1;"</font><font color="#007700">;<br /></font><font color="#0000BB">$statement </font><font color="#007700">= </font><font color="#0000BB">oci_parse</font><font color="#007700">(</font><font color="#0000BB">$c</font><font color="#007700">, </font><font color="#0000BB">$create_pkg</font><font color="#007700">);<br /></font><font color="#0000BB">oci_execute</font><font color="#007700">(</font><font color="#0000BB">$statement</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$create_pkg_body </font><font color="#007700">= </font><font color="#DD0000">"<br />CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS<br />&nbsp;&nbsp;CURSOR CUR IS SELECT name FROM bind_example;<br />&nbsp;&nbsp;PROCEDURE iobind(c1 IN OUT ARRTYPE) IS<br />&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;FOR i IN 1..5 LOOP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO bind_example VALUES (c1(i));<br />&nbsp;&nbsp;&nbsp;&nbsp;END LOOP;<br />&nbsp;&nbsp;&nbsp;&nbsp;IF NOT CUR%ISOPEN THEN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OPEN CUR;<br />&nbsp;&nbsp;&nbsp;&nbsp;END IF;<br />&nbsp;&nbsp;&nbsp;&nbsp;FOR i IN REVERSE 1..5 LOOP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FETCH CUR INTO c1(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF CUR%NOTFOUND THEN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLOSE CUR;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXIT;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END IF;<br />&nbsp;&nbsp;&nbsp;&nbsp;END LOOP;<br />&nbsp;&nbsp;END iobind;<br />END ARRAYBINDPKG1;"</font><font color="#007700">;<br /></font><font color="#0000BB">$statement </font><font color="#007700">= </font><font color="#0000BB">oci_parse</font><font color="#007700">(</font><font color="#0000BB">$c</font><font color="#007700">, </font><font color="#0000BB">$create_pkg_body</font><font color="#007700">);<br /></font><font color="#0000BB">oci_execute</font><font color="#007700">(</font><font color="#0000BB">$statement</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$statement </font><font color="#007700">= </font><font color="#0000BB">oci_parse</font><font color="#007700">(</font><font color="#0000BB">$c</font><font color="#007700">, </font><font color="#DD0000">"BEGIN ARRAYBINDPKG1.iobind(:c1); END;"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$array </font><font color="#007700">= array(</font><font color="#DD0000">"one"</font><font color="#007700">, </font><font color="#DD0000">"two"</font><font color="#007700">, </font><font color="#DD0000">"three"</font><font color="#007700">, </font><font color="#DD0000">"four"</font><font color="#007700">, </font><font color="#DD0000">"five"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">oci_bind_array_by_name</font><font color="#007700">(</font><font color="#0000BB">$statement</font><font color="#007700">, </font><font color="#DD0000">":c1"</font><font color="#007700">, </font><font color="#0000BB">$array</font><font color="#007700">, </font><font color="#0000BB">5</font><font color="#007700">, -</font><font color="#0000BB">1</font><font color="#007700">, </font><font color="#0000BB">SQLT_CHR</font><font color="#007700">);<br /><br /></font><font color="#0000BB">oci_execute</font><font color="#007700">(</font><font color="#0000BB">$statement</font><font color="#007700">);<br /><br /></font><font color="#0000BB">var_dump</font><font color="#007700">(</font><font color="#0000BB">$array</font><font color="#007700">);<br /><br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
  </P
></DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN156651"
></A
><H2
>注释</H2
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>注意: </B
>
    This function is available since OCI8 release 1.2.
   </P
></BLOCKQUOTE
></DIV
></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="ref.oci8.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.oci-bind-by-name.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Oracle 函数</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="ref.oci8.html"
ACCESSKEY="U"
>上一级</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>oci_bind_by_name</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>