tfromm Thu Apr 19 08:56:07 2001 EDT Modified files: /phpdoc/de/functions oci8.xml /phpdoc/en/functions oci8.xml Log: small changes and translatet Index: phpdoc/de/functions/oci8.xml diff -u phpdoc/de/functions/oci8.xml:1.9 phpdoc/de/functions/oci8.xml:1.10 --- phpdoc/de/functions/oci8.xml:1.9 Fri Jan 26 12:46:58 2001 +++ phpdoc/de/functions/oci8.xml Thu Apr 19 08:56:07 2001 @@ -1,48 +1,147 @@ <reference id="ref.oci8"> - <title>Oracle 8 functions</title> + <title>Oracle 8 Funktionen</title> <titleabbrev>OCI8</titleabbrev> <partintro> - <simpara> + <para> Diese Funktionen gestatten den Zugriff auf Oracle7 und Oracle8 Datenbanken. Es wird hierbei das Oracle8 Call-Interface (OCI8) verwendet, welches - installierte Oracle8 Client Bibliotheken (Libraries) benötigt.</simpara> - <simpara> + installierte Oracle8 Client Bibliotheken (Libraries) benötigt. + </para> + <para> Diese Schnittstelle ist flexibler als die Standard Oracle Funktionen. Es unterstützt Binding von localen und globalen PHP Variablen an Oracle Platzhalter und hat volle LOB,FILE und ROWID Unterstützung und - gestattet dem Benutzer die Verwendung von Variablendefines.</simpara> - </partintro> - -<!-- -OCIBindByName -OCIDefineByName -OCIColumnIsNULL -OCIColumnName -OCIColumnSize -OCIColumnType -OCIExecute -OCIFetch -OCIFetchInto -OCIFetchStatement -OCIInternalDebug -OCILogoff -OCILogon -OCIPLogon -OCINLogon -OCIError -OCICommit -OCIRollback -OCINewCursor -OCINewDescriptor -OCIRowCount -OCINumCols -OCIParse -OCIResult -OCIServerVersion -OCIStatementType -OCIFreeStatement -OCIFreeCursor ---> + gestattet dem Benutzer die Verwendung von Variablendefines. + </para> + <para> + Vor der Benutzung dieser Erweiterung sollten Sie sicherstellen die folgenden + Umgebungsvariablen für den Webserveruser VOR dem Start des Webservers + gesetzt zu haben. + <itemizedlist> + <listitem> + <simpara> + ORACLE_HOME + </simpara> + </listitem> + <listitem> + <simpara> + ORACLE_SID + </simpara> + </listitem> + <listitem> + <simpara> + LD_PRELOAD + </simpara> + </listitem> + <listitem> + <simpara> + LD_LIBRARY_PATH + </simpara> + </listitem> + <listitem> + <simpara> + NLS_LANG + </simpara> + </listitem> + <listitem> + <simpara> + ORA_NLS33 + </simpara> + </listitem> + </itemizedlist> + </para> + <para> + Nachdem Sie die Umgebungsvariablen festgelegt haben, stellen Sie sicher, + das die Dateien im ORACLE_HOME/network/admin für den Webserver lesbar sind. + </para> + <note> + <title>Wenn der Webserver abstürzt nach dem Start, oder nicht startet</title> + <para> + Überprüfen Sie, ob der Apache gegen -lpthread gelink ist: + </para> + <para> + <informalexample> + <programlisting> +# ldd /www/apache/bin/httpd + libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000) + libm.so.6 => /lib/libm.so.6 (0x4002f000) + libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000) + libdl.so.2 => /lib/libdl.so.2 (0x4007a000) + libc.so.6 => /lib/libc.so.6 (0x4007e000) + /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) + </programlisting> + </informalexample> + </para> + <para> + Wenn libpthread hier nicht gelistet ist, dann muss der Webserver + neu übersetzt werden: + </para> + <para> + <informalexample> + <programlisting> +# cd /usr/src/apache_1.3.xx +# make clean +# LIBS=-lpthread ./config.status +# make +# make install + </programlisting> + </informalexample> + </para> + </note> + <para> + <example> + <title>OCI Hinweise</title> + <programlisting role="php"> +<?php +// by [EMAIL PROTECTED] + +// Die Option OCI_DEFAULT führt die Anweisung in einer Transaktion aus +OCIExecute($stmt, OCI_DEFAULT); + +// for retrieve data use (after fetch): + +$result = OCIResult($stmt, $n); +if (is_object ($result)) $result = $result->load(); + +// For INSERT or UPDATE statement use: + +$sql = "insert into table (field1, field2) values (field1 = 'value', + field2 = empty_clob()) returning field2 into :field2"; +OCIParse($conn, $sql); +$clob = OCINewDescriptor($conn, OCI_D_LOB); +OCIBindByName ($stmt, ":field2", &$clob, -1, OCI_B_CLOB); +OCIExecute($stmt, OCI_DEFAULT); +$clob->save ("some text"); +OCICommit($conn); + +?> + </programlisting> + </example> + </para> + <para> + Man kann auf Stored Procedures auf einfache Weise zugreifen. + <example> + <title>Stored Procedures benutzen</title> + <programlisting role="php"> +<?php +// by [EMAIL PROTECTED] +$sth = OCIParse ( $dbh, "begin sp_newaddress( :address_id, '$firstname', + '$lastname', '$company', '$address1', '$address2', '$city', '$state', + '$postalcode', '$country', :error_code );end;" ); + +// This calls stored procedure sp_newaddress, with :address_id being an +// in/out variable and :error_code being an out variable. +// Then you do the binding: + + OCIBindByName ( $sth, ":address_id", $addr_id, 10 ); + OCIBindByName ( $sth, ":error_code", $errorcode, 10 ); + OCIExecute ( $sth ); + +?> + </programlisting> + </example> + </para> + </partintro> <refentry id="function.ocidefinebyname"> <refnamediv> @@ -63,9 +162,9 @@ <para> <function>OCIDefineByName</function> legt eine PHP Variable als Ziel für den Inhalt einer Spalte nach dem Fetchen fest. - Es ist zu beachten, dass Oracle alle Spalten GROSSBUSTABIG ausliefert. + Es ist zu beachten, dass Oracle alle Spalten GROSSBUCHSTABIG ausliefert. Daher erwartet <function>OCIDefineByName</function> den Parameter - <parameter>Spaltenname</parameter> grossbustabig. + <parameter>Spaltenname</parameter> grossbuchstabig. Wird ein <parameter>Spaltenname</parameter> benutzt, der nicht im SELECT vorhanden ist, wird keine Fehlermeldung ausgegeben. </para> Index: phpdoc/en/functions/oci8.xml diff -u phpdoc/en/functions/oci8.xml:1.17 phpdoc/en/functions/oci8.xml:1.18 --- phpdoc/en/functions/oci8.xml:1.17 Tue Mar 6 08:40:55 2001 +++ phpdoc/en/functions/oci8.xml Thu Apr 19 08:56:07 2001 @@ -113,6 +113,7 @@ OCIBindByName ($stmt, ":field2", &$clob, -1, OCI_B_CLOB); OCIExecute($stmt, OCI_DEFAULT); $clob->save ("some text"); +OCICommit($conn); ?> </programlisting>