phpbar.de logo

Mailinglisten-Archive

[php] Verbindung zu Oracle (Win2k)

[php] Verbindung zu Oracle (Win2k)

Ron Opitz php_(at)_phpcenter.de
Tue, 15 Jan 2002 19:10:20 +0100


> In der Manual zu den Oracle 8 Funktionen (OCI8) steht das ich die folgenden
> Umgebungsvariablen setzen muss:
>
> ORACLE_HOME, ORACLE_SID, LD_PRELOAD, LD_LIBRARY_PATH, NLS_LANG, ORA_NLS33
>
> Aber was muss jetzt genau wohin?

Unter W2K musst Du die Variablen nicht setzen. Das ist schon alles erledigt. 
Ich hatte da noch keine Probleme mit.

>
> Bisher habe ich die Variablen mit der Funktion putenv() gesetzt. Sie werden
> in der phpinfo() auch angezeigt! Nur eine VerbindungsID erhalte ich noch
> nicht...

Die VerbindungsID bekommst Du mit:

	// Oracle OCI8
	$cid = ociplogon ($User, $Password, $Host); // für persistente Verbindungen

Das sind die 3 Werte die Du auch im SQLPlus eingibst.
Unter Angabe der $cid kannst Du dann loslegen ...

// Select
		$abf=ociparse($cid, $query);
		if($abf==false) {
			print "Fehler in SQL-Befehl: ".$query." <br>";
			print "Oracle Meldung: ".OCIError($abf);
			exit;
		}
		$result = ociexecute($abf);
		if($result==false) {
			print "Fehler beim Ausführen von ".$query." <br>";
			print "Oracle Meldung: ".OCIError($abf);
			exit;
		}

		while (ocifetch($abf)) {
			$ncols = ocinumcols($abf);
			if($ncols==false) {
				print "Fehler beim Ausführen von ".$query." <br>";
				print "Oracle Meldung: ".OCIError($abf);
				print $ncols;
				exit;
			}
			for ($i = 1; $i <= $ncols; $i++) {
				$qr[$zeile]["f".$i] = trim(ociresult($abf, $i));
			}
			$zeile++;
		}

		ocifreestatement($abf);

// Insert

		$abf=ociparse($cid, $query);
		if($abf==false) {
			print "Fehler in SQL-Befehl: ".$query." <br>";
			print "Oracle Meldung: ".OCIError($abf);
			exit;
		}

		$result = ociexecute($abf);
		if($result==false) {
			print "Fehler beim Ausführen von ".$query."<br>";
			print "Oracle Meldung: ".OCIError($abf);
			exit;
		}
		ocifreestatement($abf);
 
Viel Erfolg und Spass

Gruss Ron


php::bar PHP Wiki   -   Listenarchive