PHP Handbuch
Zurück |  | Nach vorne

# OCILogon

(3.0.4 - 3.0.18 only, PHP 4 >= 4.0.0)

OCILogon -- Baut eine OCI-Verbindung auf

## Beschreibung

``int OCILogon` (string Benutzername, string Passwort [, string Datenbankname])`

OCILogon() 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.

Verbindungen werden gemeinsam wärend eines Skriptes genutzt, wenn OCILogon() benutzt wird. Das heisst, dass commits und rollbacks sich auf alle offenen Transaktionen im Skript auswirken, ausser wenn explizit mehrere Verbindungen aufgebaut werden.

Dies Beispiel zeigt, wie die Verbindungen gemeinsam genutzt werden.

Beispiel 1. OCILogon
    <?php
    print "<HTML><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." 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);   // trägt eine Zeile ein und benutzt dabei c1
    insert_data($c2);   // trägt eine Zeile ein und benutzt dabei c2

    select_data($c1);   // die Ergebnisse beider Eintragungen wird zurückgegeben
    select_data($c2);

    rollback($c1);      // Rollback benutzt c1

    select_data($c1);   // ein Rollback auf beide Eintragungen
    select_data($c2);

    insert_data($c2);   // trägt eine Zeile ein und benutzt dabei c2
    commit($c2);        // der commit für c2

    select_data($c1);   // das Ergebnis der Eintragung über c2 wird zurückgegeben

    delete_data($c1);   // löschen aller Zeilen über c1
    select_data($c1);   // keine Zeile zurückgegeben
    select_data($c2);   // keine Zeile zurückgegeben
    commit($c1);        // commit für c1

    select_data($c1);   // keine Zeile zurückgegeben
    select_data($c2);   // keine Zeile zurückgegeben

    drop_table($c1);
    print "</PRE></HTML>";
    ?>

Bitte beachte auch OCIPLogon() und OCINLogon().

Zurück | Zum Anfang | Nach vorne
OCIBindByName | Nach oben | OCIPLogon