[PHP] oci_connect

FAB

_
ID: 53119
L
5 Mai 2006
23
3
Hallo zusammen,

Eigentlich komme ich ja aus der PostgreSQL Welt, nun bin ich aber gezwungen worden mich mit Oracle auseinanderzusetzen.
Ich versuche nun schon seit heute vormittag eine Oracle 10g Datenbank per PHP anzusprechen. Nur leider funktioniert das ganze nich so wie ich mit das vorstelle.
Hoffe Ihr könnt mir vielleicht helfen.

Zur Umgebung:
Gegeben ist CentOS 5, Apache/2.2.3, PHP 5.2.6, per php_oci soll die DB angesprochen werden. Hier ein phpinfo() Auszug:
Code:
OCI8 Support			enabled 
Version 				1.2.5 
Revision 				$Revision:1.269.2.16.2.43 $ 
Active Persistent Connections 	0 
Active Connections 		0 
Oracle Instant Client Version 		10.2 
Temporary Lob support 		enabled 
Collections support 		enabled
Die Datenbank selbst liegt auf einem anderen Host, per SSH Tunnel über localhost:1521 erreichbar.

Mit der DB selbst scheint auch soweit alles in Ordnung zu sein. Mit SQuirreL kann ich mich wunderbar connecten (jdbc:eek:racle:thin:mad:localhost:1521:eek:rcl), nur mit PHP hab ich da meine Probleme.

PHP:
oci_connect("user", "pass" , "//localhost:1521/orcl")
gibt mit ein
Code:
Warning: oci_connect(): ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

Wenn ich das ganze nicht über die "Easy Connect Naming Method" versuche:
PHP:
$a = '
(DESCRIPTION =
           (ADDRESS = 
        (PROTOCOL = TCP)
        (HOST = 127.0.0.1)
        (PORT = 1521)
     )
         (CONNECT_DATA =(SERVICE_NAME = ORCL))
     )
';
oci_connect("user", "pass" , $a);
bekomme ich folgendes:
Code:
Warning: oci_connect(): ORA-12154: TNS:could not resolve the connect identifier

Nun ist es ja nicht so das man diese Fehlermeldungen nicht bei google finden würde, allerdings würde ich das problem gerne ohne Umgebungsvariablen (So wird das bei google gelöst) lösen.

Kennst jemand das Problem, oder hat wer ne Idee was man da noch machen könte?

Vielen Dank schonmal,

fab
 
Zuletzt bearbeitet:
Wen es interessiert, habs inzwischen gefunden:
Wenn ich auf dem Server unter $ORACLE_HOME/network/admin/sqlnet.ora zu NAMES.DIRECTORY_PATH ein EZCONNECT hinzufüge
Code:
NAMES.DIRECTORY_PATH= (ezconnect, TNSNAMES, ONAMES )
kann ich mich nach der "Easy Connect Naming Method" anmelden und alles funktioniert wunderbar.

Hach kann das Leben schön sein....:dance: