cvs: phpdoc-it /reference/oci8/functions oci-bind-by-name.xml ocibindbyname.xml

From: Date: Mon, 08 Mar 2004 21:43:38 +0000
Subject: cvs: phpdoc-it /reference/oci8/functions oci-bind-by-name.xml ocibindbyname.xml
Groups: php.doc.it 
Request: Send a blank email to doc-it+get-558@lists.php.net to get a copy of this message
cucinato Mon Mar 8 16:43:38 2004 EDT Added files: /phpdoc-it/reference/oci8/functions oci-bind-by-name.xml Removed files: /phpdoc-it/reference/oci8/functions ocibindbyname.xml Log: Renaming and updating

http://cvs.php.net/co.php/phpdoc-it/reference/oci8/functions/oci-bind-by-name.xml?r=1.1&p=1 Index: phpdoc-it/reference/oci8/functions/oci-bind-by-name.xml +++ phpdoc-it/reference/oci8/functions/oci-bind-by-name.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- EN-Revision: 1.3 Maintainer: cucinato Status: ready --> <refentry id="function.ocibindbyname"> <refnamediv> <refname>oci_bind_by_name</refname> <refpurpose> Lega una variabile PHP ad un segnaposto Oracle </refpurpose> </refnamediv> <refsect1> <title>Descrizione</title> <methodsynopsis> <type>bool</type><methodname>oci_bind_byname</methodname> <methodparam><type>resource</type><parameter>stmt</parameter></methodparam> <methodparam><type>string</type><parameter>nome_ph</parameter></methodparam> <methodparam><type>mixed</type><parameter>&amp;variabile</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>lungmax</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>tipo</parameter></methodparam> </methodsynopsis> <para> <function>oci_bind_by_name</function> collega la variabile PHP <parameter>variable</parameter> al segnaposto Oracle <parameter>ph_name</parameter>. L'utilizzo in modalità input o output sarà determinato a run-time, e lo spazio di memoria necessario sarà allocato. Il parametro <parameter>lungmax</parameter> imposta la lunghezza massima del collegamento. Se si imposta <parameter>lungmax</parameter> a -1 <function>oci_bind_by_name</function> userà l'attuale lunghezza di <parameter>variabile</parameter> per impostare la lunghezza massima. </para> <para> Se si deve collegare un tipo dato astratto (LOB/ROWID/BFILE) occorre innanzitutto allocarlo usando la funzione <function>oci_new_descriptor</function>. Il parametro <parameter>lungmax</parameter> non è usato con i tipi dati astratti e dovrebbe essere impostato a -1. La variabile <parameter>tipo</parameter> informa oracle sul tipo di descrittore che si vuole usare. I valori possibili sono: <itemizedlist> <listitem> <para> <constant>OCI_B_FILE</constant> - per i BFILE; </para> </listitem> <listitem> <para> <constant>OCI_B_CFILE</constant> - per i CFILE; </para> </listitem> <listitem> <para> <constant>OCI_B_CLOB</constant> - per i CLOB; </para> </listitem> <listitem> <para> <constant>OCI_B_BLOB</constant> - per i BLOB; </para> </listitem> <listitem> <para> <constant>OCI_B_ROWID</constant> - per i ROWID; </para> </listitem> <listitem> <para> <constant>OCI_B_NTY</constant> - per i named datatype; </para> </listitem> <listitem> <para> <constant>OCI_B_CURSOR</constant> - per i cursori precedentemente creati con <function>oci_new_cursor</function>. </para> </listitem> </itemizedlist> </para> <para> <example> <title>esempio di <function>ocibindbyname</function></title> <programlisting role="php"> <![CDATA[ <?php /* esempio di oci_bind_by_name thies at thieso dot net (980221) inserisce 3 tuple in emp, e usa ROWID per aggiornare le tuple subito dopo l'inserimento. */ $conn = oci_connect("scott", "tiger"); $stmt = oci_parse($conn, " INSERT INTO emp (empno, ename) VALUES (:empno,:ename) RETURNING ROWID INTO :rid "); $data = array( 1111 => "Larry", 2222 => "Bill", 3333 => "Jim" ); $rowid = oci_new_descriptor($conn, OCI_D_ROWID); oci_bind_by_name($stmt, ":empno", $empno, 32); oci_bind_by_name($stmt, ":ename", $ename, 32); oci_bind_by_name($stmt, ":rid", $rowid, -1, OCI_B_ROWID); $update = oci_parse($conn, " UPDATE emp SET sal = :sal WHERE ROWID = :rid "); oci_bind_by_name($update, ":rid", $rowid, -1, OCI_B_ROWID); oci_bind_by_name($update, ":sal", $sal, 32); $sal = 10000; while (list($empno, $ename) = each($data)) { oci_execute($stmt); oci_execute($update); } $rowid->free(); oci_free_statement($update); oci_free_statement($stmt); $stmt = oci_parse($conn, " SELECT * FROM emp WHERE empno IN (1111,2222,3333) "); oci_execute($stmt); while ($row = oci_fetch_assoc($stmt)) { var_dump($row); } oci_free_statement($stmt); /* delete our "junk" from the emp table.... */ $stmt = oci_parse($conn, " DELETE FROM emp WHERE empno IN (1111,2222,3333) "); oci_execute($stmt); oci_free_statement($stmt); oci_close($conn); ?> ]]> </programlisting> </example> </para> <para> Ricordarsi che questa funzione elimina gli spazi alla fine della riga. Vedere il seguente esempio: </para> <para> <example> <title>esempio di <function>oci_bind_by_name</function></title> <programlisting role="php"> <![CDATA[ <?php $connection = oci_connect('apelsin','kanistra'); $query = "INSERT INTO test_table VALUES(:id, :text)"; $statement = oci_parse($query); oci_bind_by_name($statement, ":id", 1); oci_bind_by_name($statement, ":text", "Qui ci sono degli spazi "); oci_execute($statement); /* Questo codice inserisce nel DB la stringa 'Qui ci sono degli spazi', senza gli spazi finali */ ?> ]]> </programlisting> </example> </para> <para> <example> <title>esempio di <function>oci_bind_by_name</function></title> <programlisting role="php"> <![CDATA[ <?php $connection = oci_connect('apelsin','kanistra'); $query = "INSERT INTO test_table VALUES(:id, 'Qui ci sono degli spazi ')"; $statement = oci_parse($query); oci_bind_by_name($statement, ":id", 1); oci_execute($statement); /* Questo codice aggiunge 'Qui ci sono degli spazi ', mantenendo gli spazi */ ?> ]]> </programlisting> </example> </para> <warning> <para> Non utilizzare le <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> o <function>addslashes</function> e <function>oci_bind_by_name</function> simultaneamente in quanto le virgolette non sono necessarie nelle variabili e qualsiasi virgoletta aggiunta automaticamente verrà scritta nel database dal momento che <function>ocibindbyname</function> non è in grado di distinguere le virgolette aggiunte automaticamente da quelle intenzionali. </para> </warning> <para> &return.success; </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
« previous php.doc.it (#558) next »