oci_new_connect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_connect����һ���� Oracle ��������������

˵��

oci_new_connect ( string $username , string $password [, string $db [, string $charset [, int $session_mode ]]] ) : resource

oci_new_connect() ����һ���� Oracle �������������Ӳ���¼���� oci_connect() �� oci_pconnect() ��ͬ��oci_new_connect() ���Ỻ�����ӣ����ǻ᷵��һ��ȫ�µĸմ򿪵����Ӿ��������Ӧ�ó�����Ҫ�������ѯ֮��ʵ�������������á�

��ѡ�ĵ��������������DZ��� Oracle ʵ�������ֻ������� tnsnames.ora ����Ŀ�е����֡����û��ָ�������������� PHP ʹ�û������� ORACLE_SID �� TWO_TASK ���ֱ�ȷ������ Oracle ʵ�������ֺ� tnsnames.ora ��λ�á�

session_mode �����԰汾 1.1 ����ò���������ֵ��OCI_DEFAULT��OCI_SYSOPER �� OCI_SYSDBA�����ָ���� OCI_SYSOPER �� OCI_SYSDBA ����֮һ��oci_new_connect() ������ʹ���ⲿ��֤��Ϣ������Ȩ���ӡ���Ȩ����Ĭ�ϱ���ֹ��Ҫ���ã���Ҫ�� oci8.privileged_connect ��Ϊ On��

ʹ�� Oracle �ͻ��˿���ȷ���ַ������ַ�������Ҫ�����ݿ���ַ�����ƥ�䡣�����ƥ�䣬Oracle �ᾡ���ܵؽ����ݴ����ݿ��ַ�������ת������Ϊ�������ַ��������ܲ��ܸ������õĽ����ת��Ҳ����һЩʱ�俪����

�����ָ����Oracle �ͻ����� NLS_LANG ���������������ַ�����

���ݴ˲����ɼ�������ʱ�䡣

����������ʾ�������������ӡ�

Example #1 oci_new_connect() ����

<?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($stmtOCI_DEFAULT);
  echo 
$conn " inserted hallo\n\n";
}

function 
delete_data($conn)
{
  
$stmt oci_parse($conn"delete from scott.hallo");
  
oci_execute($stmtOCI_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($stmtOCI_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>";
?>

oci_new_connect() �ڳ���ʱ���� FALSE��

Note:

�� PHP 5.0.0 ֮ǰ�İ汾����ʹ�� ocinlogon() ������������ú�������Ȼ���ã�Ϊ���¼�����Ϊ oci_new_connect() �ı������������ѱ����������Ƽ�ʹ�á�

�μ� oci_connect() �� oci_pconnect()��

����

username

The Oracle user name.

password

The password for username.

connection_string

����Ҫ���ӵ� Oracle ʵ���������� » Easy Connect �������� tnsnames.ora �ļ��е������������DZ��� Oracle ʵ������

�����ָ����PHP ʹ�û���������ȷ�����ӵ� Oracle ʵ�������� TWO_TASK��Linux �£��� LOCAL��Windows �£��� ORACLE_SID �ȡ�

Ҫʹ�� Easy Connect ����������PHP ������ Oracle 10g ����߰汾�Ŀͻ��˿�������ӡ�Oracle 10g �� Easy Connect ����ʽ��[//]host_name[:port][/service_name]��Oracle 11g ��Ϊ��[//]host_name[:port][/service_name][:server_type][/instance_name]���������������ݿ���������������� Oracle ʵ�ó��� lsnrctl status �ҵ���

tnsnames.ora �ļ����� Oracle Net ����·���У���·������ $ORACLE_HOME/network/admin �� /etc�� ��һ�ַ��������� TNS_ADMIN �Ա�ͨ�� $TNS_ADMIN/tnsnames.ora ����ȡ����ȷ�� web �ػ����̿ɶ�ȡ���ļ���

character_set

ʹ�� Oracle �ͻ��˿���ȷ���ַ������ַ�������Ҫ�����ݿ���ַ�����ƥ�䡣�����ƥ�䣬Oracle �ᾡ���ܵؽ����ݴ����ݿ��ַ�������ת������Ϊ�������ַ��������ܲ��ܸ������õĽ����ת��Ҳ����һЩʱ�俪����

�����ָ����Oracle �ͻ����� NLS_LANG ���������������ַ�����

���ݴ˲����ɼ�������ʱ�䡣

session_mode

�˲����� PHP 5��PECL OCI8 1.1���汾��ʼ���ã�����������ֵ��OCI_DEFAULT��OCI_SYSOPER �� OCI_SYSDBA����Ϊ OCI_SYSOPER �� OCI_SYSDBA ����֮һ���˺�������ʹ���ⲿ��֤�齨������Ȩ�����ӡ�����Ȩ������Ĭ���ǽ��õġ���Ҫ�� oci8.privileged_connect ��Ϊ On �����á�

PHP 5.3��PECL OCI8 1.3.4�������� OCI_CRED_EXT ģʽֵ��ʹ���ⲿ�����ϵͳ��֤������ Oracle ���ݿ��н������á�OCI_CRED_EXT ��־ֻ�������û�Ϊ "/"������Ϊ�յ������oci8.privileged_connect ��Ϊ On �� Off��

OCI_CRED_EXT ���� OCI_SYSOPER �� OCI_SYSDBA ģʽ���ʹ�á�

OCI_CRED_EXT ���ڰ�ȫ��ԭ��֧�� Windows ϵͳ��

����ֵ

Returns a connection identifier or FALSE on error.

����

The following demonstrates how you can separate connections.

Example #2 oci_new_connect() example

<?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($stmtOCI_DEFAULT);
  echo 
$conn " inserted hallo\n\n";
}

function 
delete_data($conn)
{
  
$stmt oci_parse($conn"delete from scott.hallo");
  
oci_execute($stmtOCI_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($stmtOCI_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>";
?>

ע��

Note:

In PHP versions before 5.0.0 you must use ocinlogon() instead. �ڵ�ǰ�汾�У��ɵĺ����������Ա�ʹ�ã����Ѿ���������������ʹ�á�

�μ�

  • oci_connect() - ����һ���� Oracle ������������
  • oci_pconnect() - ʹ��һ���־��������� Oracle ���ݿ�