php.oracle远程连接求救
谁成功的使用php连接远程的oracle服务器?
清大虾出手相救,
否则,不得不转向jsp
--------------------------------------------------------------
php 4.0.1pl2
oracle 8i
web server: NES 3.6
oracle在另一台服务器上,ORACLE_SID是webdb,系统名字是net.db.host.com
我在web server 上安装了oracle 8i的client,配置好了netec,测试成功
使用tnsping和sqlplus正常,例如:
tnsping net
tnsping db
tnsping db.host.com
sqlpus scott/tiger@net
当时用php4编译的oci支持时候,出错了.
下面是源程序和出错信息
----------------------------------------------------
<?
putenv("ORACLE_SID=webdb");
putenv("ORACLE_HOME=/data/oracle/app/8.1.5");
putenv("NLS_LANG=american.america.US7ASCII");
$conn = OCIpLogon("scott/tiger@net.db.host.com","");
if(!$conn)$conn=OCIpLogon("scott/tiger@webdb","");
if(!$conn)$conn=OCIpLogon("scott/tiger@net","");
if(!$conn)$conn=OCIpLogon("scott@net.db.host.com","tiger");
if(!$conn)$conn=OCIpLogon("scott@webdb","tiger");
if(!$conn)$conn=OCIpLogon("scott@net","tiger");
if(!$conn)$conn=OCIpLogon("scott","tiger","net.db.host.com");
if(!$conn)$conn=OCIpLogon("scott","tiger","webdb");
if(!$conn)$conn=OCIpLogon("scott","tiger","net");
if($conn)
echo "sucessful!";
else
echo "<font color=red>Connect to database failed!";
?>
---------------------------------------------------------------
出错信息
----------------------------------------------------------------
Warning: _oci_open_server: ORA-12545: Connect failed because target ho
st or obje
ct does not exist in /data/php/z.php on line 6
Warning: _oci_open_server: ORA-12545: Connect failed because target ho
st or obje
ct does not exist in /data/php/z.php on line 7
Warning: _oci_open_server: ORA-12545: Connect failed because target ho
st or obje
ct does not exist in /data/php/z.php on line 8
Warning: _oci_open_server: ORA-12545: Connect failed because target ho
st or obje
ct does not exist in /data/php/z.php on line 10
Warning: _oci_open_server: ORA-12545: Connect failed because target ho
st or obje
ct does not exist in /data/php/z.php on line 11
Warning: _oci_open_server: ORA-12545: Connect failed because target ho
st or obje
ct does not exist in /data/php/z.php on line 12
Warning: _oci_open_server: ORA-12154: TNS:could not resolve service na
me in /dat
a/php/z.php on line 14
Warning: _oci_open_server: ORA-12154: TNS:could not resolve service na
me in /dat
a/php/z.php on line 15
Warning: _oci_open_server: ORA-12154: TNS:could not resolve service na
me in /dat
a/php/z.php on line 16
Connect to database failed!
---------------------------------------------------------------------
这是 web server 上的tnsnames.ora 文件
---------------------------------------------------------------------
# TNSNAMES.ORA Configuration File:/data/oracle/app/8.1.5/network/admin
/tnsnames.
ora
# Generated by Oracle Net8 Assistant
NET =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = db.host.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = net.db.host.com)
)
)
--------------------------------------------------------------------
这是oracle服务器上的listener.ora文件
--------------------------------------------------------------------
# LISTENER.ORA Configuration File:/oracle/app/8.1.5/network/admin/list
e
# Generated by Oracle Net8 Assistant
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(PROTOCOL_STACK =
(PRESENTATION = TTC)
(SESSION = NS)
)
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.13)(PORT = 2481))
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db.host.com)(PORT = 1521))
(PROTOCOL_STACK =
(PRESENTATION = TTC)
(SESSION = NS)
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/app/8.1.5)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = net.db.host.com)
(ORACLE_HOME = /oracle/app/8.1.5)
(SID_NAME = webdb)
)
)
----------------------------------------------------------#