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.
ora_logon
説明
resource ora_logon ( string user, string password )指定したユーザ名とパスワードによりPHPとOracleデータベースの 接続を確立します。
次のように TNS 名を user に与えることにより、接続は SQL*Net を用いて作成されます。
非アスキー文字を含む文字データがある場合、環境変数 NLS_LANG を設定する必要があります。サーバーモジュー ルの場合、サーバーの起動前にサーバーの環境変数として設定する必要 があります。
成功した場合に接続インデックス、失敗した場合にFALSEを返します。 エラーについての詳細は、ora_error()および ora_errorcode()関数を用いて調べられます。
ora_logon
premiere_fondation at yahoo dot fr
24-Dec-2003 01:59
24-Dec-2003 01:59
knitterb at blandsite dot org
12-Nov-2003 06:29
12-Nov-2003 06: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 11:52
06-Nov-2003 11: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 10:38
12-Apr-2001 10: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 11:10
15-Mar-2000 11: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.