php-doc-en/reference/oci8/functions/oci-new-connect.xml
2004-07-05 08:58:49 +00:00

173 lines
4.8 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.4 $ -->
<refentry id="function.oci-new-connect">
<refnamediv>
<refname>oci_new_connect</refname>
<refpurpose>Establishes a new connection to the Oracle server</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<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>
</methodsynopsis>
<para>
<function>oci_new_connect</function> creates a new connection to an Oracle
server and logs on. The optional third parameter can either contain the name
of the local Oracle instance or the name of the entry in
<filename>tnsnames.ora</filename>. If the third parameter is 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>
<para>
Using Oracle server version 9.2 and greater, you can indicate
<parameter>charset</parameter> parameter, which will be used in the new
connection. If you're using Oracle server < 9.2, this parameter will be
ignored and NLS_LANG environment variable will be used instead.
</para>
<para>
<function>oci_new_connect</function> forces the creation of a new connection.
This should be used if you need to isolate a set of transactions. By
default, connections are shared and subsequent calls to
<function>oci_connect</function> will return the same connection
identifier.
</para>
<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>
<para>
<function>oci_new_connect</function> returns &false; on error.
</para>
<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>
<simpara>
See also <function>oci_connect</function> and
<function>oci_pconnect</function>.
</simpara>
</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
-->