mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-15 16:38:54 +00:00

Add bulk of OCI8 DTrace section. Add OCI8 2.0 oci_get_implicit_resultset and examples. Remove OCI8 back references to pre-5.0 aliases. Update OCI8 LIMIT-equivalent example with new Oracle 12c syntax. Move OCI8 FAN to separate section. Remove some OCI8 <emphasis> again, since it incorrectly bolds part of the product names. git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@331842 c90b9560-bf6c-de11-be94-00142212c4b1
298 lines
7.2 KiB
XML
298 lines
7.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<refentry xml:id="function.oci-define-by-name" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>oci_define_by_name</refname>
|
|
<refpurpose>Associates a PHP variable with a column for query fetches</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type>bool</type><methodname>oci_define_by_name</methodname>
|
|
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
|
|
<methodparam><type>string</type><parameter>column_name</parameter></methodparam>
|
|
<methodparam><type>mixed</type><parameter role="reference">variable</parameter></methodparam>
|
|
<methodparam choice="opt"><type>int</type><parameter>type</parameter><initializer>SQLT_CHR</initializer></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Associates a PHP variable with a column for query fetches using <function>oci_fetch</function>.
|
|
</para>
|
|
<para>
|
|
The <function>oci_define_by_name</function> call must occur before
|
|
executing <function>oci_execute</function>.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>statement</parameter></term>
|
|
<listitem>
|
|
&oci.arg.statement.id;
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>column_name</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The column name used in the query.
|
|
</para>
|
|
<para>
|
|
Use uppercase for Oracle's default, non-case sensitive column
|
|
names. Use the exact column name case for case-sensitive
|
|
column names.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>variable</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The PHP variable that will contain the returned column value.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>type</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The data type to be returned. Generally not needed. Note that
|
|
Oracle-style data conversions are not performed. For example,
|
|
<literal>SQLT_INT</literal> will be ignored and the returned
|
|
data type will still be <literal>SQLT_CHR</literal>.
|
|
</para>
|
|
<para>
|
|
You can optionally use <function>oci_new_descriptor</function>
|
|
to allocate LOB/ROWID/BFILE descriptors.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
&return.success;
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title><function>oci_define_by_name</function> example</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
|
|
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
|
|
if (!$conn) {
|
|
$e = oci_error();
|
|
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
|
|
}
|
|
|
|
$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
|
|
$stid = oci_parse($conn, $sql);
|
|
|
|
// The defines MUST be done before executing
|
|
oci_define_by_name($stid, 'LOCATION_ID', $locid);
|
|
oci_define_by_name($stid, 'CITY', $city);
|
|
|
|
oci_execute($stid);
|
|
|
|
// Each fetch populates the previously defined variables with the next row's data
|
|
while (oci_fetch($stid)) {
|
|
echo "Location id $locid is $city<br>\n";
|
|
}
|
|
|
|
// Displays:
|
|
// Location id 1000 is Roma
|
|
// Location id 1100 is Venice
|
|
|
|
oci_free_statement($stid);
|
|
oci_close($conn);
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title><function>oci_define_by_name</function> with case sensitive column names</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
|
|
/*
|
|
Before running, create the table with a case sensitive column name:
|
|
CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
|
|
INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
|
|
COMMIT;
|
|
*/
|
|
|
|
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
|
|
if (!$conn) {
|
|
$e = oci_error();
|
|
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
|
|
}
|
|
|
|
$stid = oci_parse($conn, 'SELECT * FROM mytab');
|
|
|
|
// Use uppercase for non case-sensitive column names
|
|
oci_define_by_name($stid, 'ID', $id);
|
|
|
|
// Use the exact case for case-sensitive column names
|
|
oci_define_by_name($stid, 'MyDescription', $mydesc);
|
|
|
|
oci_execute($stid);
|
|
|
|
while (oci_fetch($stid)) {
|
|
echo "id $id is $mydesc<br>\n";
|
|
}
|
|
|
|
// Displays:
|
|
// id 1 is Iced Coffee
|
|
|
|
oci_free_statement($stid);
|
|
oci_close($conn);
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title><function>oci_define_by_name</function> with LOB columns</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
|
|
/*
|
|
Before running, create the table:
|
|
CREATE TABLE mytab (id NUMBER, fruit CLOB);
|
|
INSERT INTO mytab (id, fruit) values (1, 'apple');
|
|
INSERT INTO mytab (id, fruit) values (2, 'orange');
|
|
COMMIT;
|
|
*/
|
|
|
|
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
|
|
if (!$conn) {
|
|
$e = oci_error();
|
|
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
|
|
}
|
|
|
|
$stid = oci_parse($conn, 'SELECT * FROM mytab');
|
|
|
|
// The defines MUST be done before executing
|
|
oci_define_by_name($stid, 'ID', $id);
|
|
oci_define_by_name($stid, 'FRUIT', $fruit); // $fruit will become a LOB descriptor
|
|
|
|
oci_execute($stid);
|
|
|
|
while (oci_fetch($stid)) {
|
|
echo $id . " is " . $fruit->load(100) . "<br>\n";
|
|
}
|
|
|
|
// Displays:
|
|
// 1 is apple
|
|
// 2 is orange
|
|
|
|
$fruit->free();
|
|
oci_free_statement($stid);
|
|
oci_close($conn);
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title><function>oci_define_by_name</function> with an explicit type</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
|
|
/*
|
|
Before running, create the table:
|
|
CREATE TABLE mytab (id NUMBER, fruit CLOB);
|
|
INSERT INTO mytab (id, fruit) values (1, 'apple');
|
|
INSERT INTO mytab (id, fruit) values (2, 'orange');
|
|
COMMIT;
|
|
*/
|
|
|
|
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
|
|
if (!$conn) {
|
|
$e = oci_error();
|
|
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
|
|
}
|
|
|
|
$stid = oci_parse($conn, 'SELECT * FROM mytab');
|
|
|
|
// The defines MUST be done before executing
|
|
oci_define_by_name($stid, 'ID', $id);
|
|
|
|
$fruit = oci_new_descriptor($conn, OCI_D_LOB);
|
|
oci_define_by_name($stid, 'FRUIT', $fruit, OCI_D_CLOB);
|
|
|
|
oci_execute($stid);
|
|
|
|
while (oci_fetch($stid)) {
|
|
echo $id . " is " . $fruit->load(100) . "<br>\n";
|
|
}
|
|
|
|
// Displays:
|
|
// 1 is apple
|
|
// 2 is orange
|
|
|
|
$fruit->free();
|
|
oci_free_statement($stid);
|
|
oci_close($conn);
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>oci_fetch</function></member>
|
|
<member><function>oci_new_descriptor</function></member>
|
|
</simplelist>
|
|
</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:"~/.phpdoc/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
|
|
-->
|
|
|