Make sure the environment variables are set in the shell that starts
Apache.  See

Try changing your OCILogon command to

  $odbc = OCILogon("yourusername","yourpassword",$db);

i.e. remove "/test" from the username parameter.


neil smith wrote:

I have test script that can connect to the oracle database. It doesn't
require tnsnames.ora because I define the database alias in the script
itself. It looks like this:

echo "TWO_TASK=".getenv("TWO_TASK")."<br>";
echo "LD_LIBRARY_PATH=".getenv("LD_LIBRARY_PATH")."<br>";
echo "ORACLE_BASE=".getenv("ORACLE_BASE")."<BR>";
echo "ORACLE_HOME=".getenv("ORACLE_HOME")."<BR>";
echo "TNS_ADMIN=".getenv("TNS_ADMIN")."<BR>";
echo "NLS_LANG=".getenv("NLS_LANG").".<br>";

# this allows a successful connection

$db = "  (DESCRIPTION =
 (CONNECT_DATA= (SID = testdb))

// these don't work.. php can't seem to find tnsnames.ora
# $db = "";
//$db = "";
# $db = "testdb";
//echo $testdb;

$odbc = OCILogon("test/test","test",$db);

if ($odbc == false){
  $msg = OCIError($odbc)."<BR>";
} else {
echo "success!!!<br>";

My problem is is that when I try to use the database alias in tnsnames.ora I
get an ora-12154 error. I get this despite the facts that oracle_home,
tns_admin and everything else is defined in the script and the tnsnames.ora
contains exactly the same alias as I use in the hardcoded version (see the
uncommented $db above).
sqlnet.ora contains a value name_domain that apparently is appended to the
alias in tnsnames.ora but accounting for this still doesn't let me connect
to oracle . It's as if tnsnames.ora cannot be found. I've changed the
permissions to 777 for the whole directory structure and I can successfully
use tnsnames.ora with sqlplus or tnsping.

Does anybody have any ideas what is going wrong? Is this a bug?



Christopher Jones, Oracle Corporation, Australia.
Email: [EMAIL PROTECTED]   Tel: +61 3 8616 3622

PHP Database Mailing List (
To unsubscribe, visit:

Reply via email to