php-doc-en/reference/oci8/functions/oci-new-connect.xml
Mehdi Achour 14570047c1 ref.oci8: switch to new doc style
# reviewers, please :)


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@229012 c90b9560-bf6c-de11-be94-00142212c4b1
2007-02-05 03:10:58 +00:00

256 lines
6.8 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.9 $ -->
<refentry id="function.oci-new-connect">
<refnamediv>
<refname>oci_new_connect</refname>
<refpurpose>Establishes a new connection to the Oracle server</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>oci_new_connect</methodname>
<methodparam><type>string</type><parameter>username</parameter></methodparam>
<methodparam><type>string</type><parameter>password</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>db</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>charset</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>session_mode</parameter></methodparam>
</methodsynopsis>
<para>
Establishes a new connection to an Oracle server and logs on.
</para>
<para>
Unlike <function>oci_connect</function> and
<function>oci_pconnect</function>, <function>oci_new_connect</function>
does not cache connections and will always return a brand-new freshly
opened connection handle. This is useful if your application needs
transactional isolation between two sets of queries.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>username</parameter></term>
<listitem>
<para>
The Oracle user name.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>password</parameter></term>
<listitem>
<para>
The password for <parameter>username</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>db</parameter></term>
<listitem>
<para>
This optional parameter can either contain the name of the local
Oracle instance or the name of the entry in
<filename>tnsnames.ora</filename>.
</para>
<para>
If the not specified, PHP uses environment variables
<literal>ORACLE_SID</literal> and <literal>TWO_TASK</literal> to
determine the name of local Oracle instance and location of
<filename>tnsnames.ora</filename> accordingly.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>charset</parameter></term>
<listitem>
&oci.charset;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>session_mode</parameter></term>
<listitem>
<para>
This parameter is available since version 1.1 and accepts the
following values: <constant>OCI_DEFAULT</constant>,
<constant>OCI_SYSOPER</constant> and <constant>OCI_SYSDBA</constant>.
If either <constant>OCI_SYSOPER</constant> or
<constant>OCI_SYSDBA</constant> were specified, this function will try
to establish privileged connection using external credentials.
Privileged connections are disabled by default. To enable them you
need to set <link
linkend="ini.oci8.privileged_connect">oci8.privileged_connect</link>
to <literal>On</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns a connection identifier or &false; on error.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
The following demonstrates how you can separate connections.
<example>
<title><function>oci_new_connect</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
echo "<html><pre>";
$db = "";
$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_connect("scott", "tiger", $db);
function create_table($conn)
{
$stmt = oci_parse($conn, "create table scott.hallo (test
varchar2(64))");
oci_execute($stmt);
echo $conn . " created table\n\n";
}
function drop_table($conn)
{
$stmt = oci_parse($conn, "drop table scott.hallo");
oci_execute($stmt);
echo $conn . " dropped table\n\n";
}
function insert_data($conn)
{
$stmt = oci_parse($conn, "insert into scott.hallo
values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
oci_execute($stmt, OCI_DEFAULT);
echo $conn . " inserted hallo\n\n";
}
function delete_data($conn)
{
$stmt = oci_parse($conn, "delete from scott.hallo");
oci_execute($stmt, OCI_DEFAULT);
echo $conn . " deleted hallo\n\n";
}
function commit($conn)
{
oci_commit($conn);
echo $conn . " committed\n\n";
}
function rollback($conn)
{
oci_rollback($conn);
echo $conn . " rollback\n\n";
}
function select_data($conn)
{
$stmt = oci_parse($conn, "select * from scott.hallo");
oci_execute($stmt, OCI_DEFAULT);
echo $conn . "----selecting\n\n";
while (oci_fetch($stmt)) {
echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n";
}
echo $conn . "----done\n\n";
}
create_table($c1);
insert_data($c1);
select_data($c1);
select_data($c2);
rollback($c1);
select_data($c1);
select_data($c2);
insert_data($c2);
commit($c2);
select_data($c1);
delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);
select_data($c1);
select_data($c2);
drop_table($c1);
echo "</pre></html>";
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<simpara>
If you're using PHP with Oracle Instant Client, you can use easy connect
naming method described here:
<ulink url="&url.oracle.oic.connect;">&url.oracle.oic.connect;</ulink>.
Basically this means you can specify "//db_host[:port]/database_name"
as database name. But if you want to use the old way of naming you
<emphasis>must</emphasis> set either <constant>ORACLE_HOME</constant> or
<constant>TNS_ADMIN</constant>.
</simpara>
</note>
<note>
<para>
In PHP versions before 5.0.0 you must use <function>ocinlogon</function> instead.
This name still can be used, it was left as alias of
<function>oci_new_connect</function> for downwards compatability.
This, however, is deprecated and not recommended.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>oci_connect</function></member>
<member><function>oci_pconnect</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:"../../../../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
-->