|  | 
 ocilogon    (PHP 3>= 3.0.4, PHP 4 , PHP 5) ocilogon -- 确立一个到 Oracle 的连接描述resource ocilogon  ( string username, string password [, string db]) 
     ocilogon() 返回一个OCI 调用需要的连接标志符。
可选的第3个参数含有你想要连接的数据库的名字,该名字为本地 Oracle 
实列的名字或者在 tnsnames.ora 的条目中的名字。
如果第3个参数没有定义, PHP 使用环境变量  ORACLE_SID (Oracle 实列)
或  TWO_TASK (tnsnames.ora) 来确定连接哪一个数据库。
     当使用 ocilogon() 的时候,
连接在页水平上被共享。
这意味着提交和回滚应用到该页所有开放的事务,甚至在你已经创建
多个连接的情况下。
     
这个例子演示连接是怎样被共享的。
      | 例子 1. ocilogon() | 
<?phpecho "<pre>";
 $db = "";
 
 $c1 = ocilogon("scott", "tiger", $db);
 $c2 = ocilogon("scott", "tiger", $db);
 
 function create_table($conn)
 {
 $stmt = ociparse($conn, "create table scott.hallo (test varchar2(64))");
 ociexecute($stmt);
 echo $conn . " created table\n\n";
 }
 
 function drop_table($conn)
 {
 $stmt = ociparse($conn, "drop table scott.hallo");
 ociexecute($stmt);
 echo $conn . " dropped table\n\n";
 }
 
 function insert_data($conn)
 {
 $stmt = ociparse($conn, "insert into scott.hallo
 values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
 ociexecute($stmt, OCI_DEFAULT);
 echo $conn . " inserted hallo\n\n";
 }
 
 function delete_data($conn)
 {
 $stmt = ociparse($conn, "delete from scott.hallo");
 ociexecute($stmt, OCI_DEFAULT);
 echo $conn . " deleted hallo\n\n";
 }
 
 function commit($conn)
 {
 ocicommit($conn);
 echo $conn . " committed\n\n";
 }
 
 function rollback($conn)
 {
 ocirollback($conn);
 echo $conn . " rollback\n\n";
 }
 
 function select_data($conn)
 {
 $stmt = ociparse($conn, "select * from scott.hallo");
 ociexecute($stmt, OCI_DEFAULT);
 echo $conn."----selecting\n\n";
 while (ocifetch($stmt)) {
 echo $conn . " [" . ociresult($stmt, "TEST") . "]\n\n";
 }
 echo $conn . "----done\n\n";
 }
 
 create_table($c1);
 insert_data($c1);   // Insert a row using c1
 insert_data($c2);   // Insert a row using c2
 
 select_data($c1);   // Results of both inserts are returned
 select_data($c2);
 
 rollback($c1);      // Rollback using c1
 
 select_data($c1);   // Both inserts have been rolled back
 select_data($c2);
 
 insert_data($c2);   // Insert a row using c2
 commit($c2);        // Commit using c2
 
 select_data($c1);   // Result of c2 insert is returned
 
 delete_data($c1);   // Delete all rows in table using c1
 select_data($c1);   // No rows returned
 select_data($c2);   // No rows returned
 commit($c1);        // Commit using c1
 
 select_data($c1);   // No rows returned
 select_data($c2);   // No rows returned
 
 drop_table($c1);
 echo "</pre>";
 ?>
 | 
 | 
 
 参见 ociplogon() 和
     ocinlogon()。
 |  |