PHP+Oracle: could not resolve service name

From: Álvaro G. Vicario <alvaro_NOSPAM_at_demogracia.com>
Date: Wed, 9 Apr 2008 13:35:29 +0200
Message-ID: <fti9n3$v56$1@huron.algomas.org>


I'm developing a PHP 4 application in a Windows Server 2003 box. I'm connecting to a remote Oracle 10g server using ODBC (with a system-wide DSN). I didn't install any of the software and my Oracle experience doesn't got further than writing queries ;-)

My issue is that PHP scripts cannot connect to the database server when I run them from the *command line*. I get this error message:

    SQL error: [Microsoft][ODBC driver for Oracle][Oracle]ORA-12154: TNS:no se ha podido resolver el nombre del servicio, SQL state 08001 in SQLConnect

Which translates into English as "could not resolve service name".

The *very same code* runs fine when parsed through the web server (Apache2 + PHP module running as LocalSystem) and I've found no problems using TOAD. Apart from environment, PHP configuration is identical in command line and web.

After some Googling I've tried setting TNS_ADMIN and ORACLE_HOME environmental variables but it didn't make any difference. I just can't understand why all programs can connect except command line PHP. Do you have any clue?

Sample code:

<?php

define('DB_DSN', 'FOO');
define('DB_USERNAME', 'FOO');
define('DB_PASSWORD', 'FOO');

odbc_connect(DB_DSN, DB_USERNAME, DB_PASSWORD);

?>
Received on Wed Apr 09 2008 - 06:35:29 CDT

Original text of this message