ora_logon

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_logon -- 打开一个 Oracle 连接

描述

int ora_logon ( string user, string password )

用给定的用户名 user 和密码 password 在 PHP 和一个 Oracle 数据库之间建立一个连接。

可以通过使用 TNS 名作为参数 user 来使用 SQL*Net 建立连接。请看下面的示例:

<?php
$conn
= Ora_Logon("user@TNSNAME", "pass");
?>

如果要在字符数据中使用非 ASCII 字符,则必须在环境变量中设置 NLS_LANG。 就服务器而言,必须在服务器启动之前设置 NLS_LANG 服务器环境变量。

如果连接成功则返回连接索引,如果不能连接则返回 FALSE。错误的细节能够使用 ora_error()ora_errorcode() 函数取得。


add a note add a note User Contributed Notes
premiere_fondation at yahoo dot fr
24-Dec-2003 12:59
Hello,
I had the problem and the solution is this one :
Use OCILogon()

Instead of writing :

$db = ("INSTANCE_NAME");

Write the entire line corresponding to your oracle instance descriptor in tnsnames.ora file :

$db = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = db.ip.address)(PORT = db.port)) ) (CONNECT_DATA = (SID = YOUR_DB_SID) ) )";
$con = OCILogOn("user", "password",$db);

This works perfectly.
Nicolas Corlieu.
knitterb at blandsite dot org
12-Nov-2003 05:29
You probably want to use the more modern OCILogon and other OCI functions for logging in to a database.  Additional connection strings can also be found on the OCILogon page for documentation.
php developer
06-Nov-2003 10:52
I also goy the ORA-1245 error using ora_logon, but setting the ORACLE_HOME var so it showed up in both the Apache Environment and Environment sections in phpinfo didn't help the situation. The full error was "Warning: Oracle: Connection Failed: ORA-12545: Connect failed because target host or object does not exist in /path/to/script on line xx." Turns out I had the oracle client installed (which is required) and I had the environment correct (which is required), but I didn't have a local tnsnames.ora file setup, so the connection couldn't find the correct binaries to connect to oracle. Creating the tnsnames.ora file on the local server (db server is remote) and using the proper syntax of "ora_logon("user@tnsentry", "password");" worked for me. Note: ORACLE_HOME and ORACLE_SID were set in the script using putenv.
Devon
12-Apr-2001 09:38
In addition to above comments - I had a ORA-12545 error using ora_logon that I eventually found was simply a var/path problem - when you start up "apachectl start" make sure apache can find oracle!
keithv at bzlninc dot com
15-Mar-2000 10:10
In order to get this to work properly I needed to have the ORACLE_HOME variable set before starting the Apache web server. I put it in the /etc/profile file, but you can do it anyway you choose.