PHP Handbuch
Zurück |  | Nach vorne

# ocinlogon

(PHP 3>= 3.0.8, PHP 4 )

ocinlogon -- Logt sich in die Oracle Datenbank ein und erzeugt dabei eine neue Oracle Session.

## Beschreibung

int OCINLogon ( string username, string password [, string db])

OCINogon() gibt bei erfolgreicher Verbindung einen Verbindungsindex zurück. Bei einem Fehler `FALSE`. Der optionale dritte Parameter kann auf die lokale Oracleinstanz gesetzt werden oder auf die, zu welcher sich verbunden werden soll. Diese sollte in der tnsnames.ora aufgeführt sein. Wird der dritte Parameter nicht gesetzt nimmt PHP automatisch den Wert aus der Umgebungsvariable ORACLE_SID oder TWO_TASK.

OCINLogon() erzeugt eine neue Verbindung mit einer neuen Oracle Session, dies ist zum Beispiel erforderlich, wenn man mit voneinander getrennten Transaktionen arbeitet. Normalerweise wird die Oracle Session gemeinsam genutzt, wenn man OCILogon() oder auf Webserverebene OCIPLogon() . Wenn man allerdings unterschiedliche Verbindungen mit OCINLogon() öffnet, beeinflussen sich die Commits und Rollbacks der einzelnen Datenbankverbindungen nicht.

Dieses Beispiel zeigt, dass es sich um unterschiedliche Verbindungen handelt:

Beispiel 1. OCINLogon

    <?php
    print "<HTML><PRE>";
    $db = "";

    $c1 = ocilogon("scott","tiger",$db);
    $c2 = ocinlogon("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." commited\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);

    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);
    print "</PRE></HTML>";
    ?>

Bitte beachten OCILogon() und OCIPLogon().

Zurück | Zum Anfang | Nach vorne
ocinewdescriptor | Nach oben | ocinumcols