Oracle Database Connection Strings in PHP

Oracle Database Connection Strings in PHP

It’s easy to get confused as to how to specificy your Oracle database connection string, and there’s a handy new feature in Oracle 10g that makes this a whole lot easier. So here’s a little rundown of the three ways to connect to Oracle databases. You can use the:

  • tnsnames.ora file
  • Full connection string
  • Easy connect string

These examples show how to specificy an Oracle connection string using the new OCI8 functions in PHP.

tnsnames.ora File

The tnsnames.ora file is a client side file that maps an alias used by client
programs to a database service. It is used to connect to a non-default database. Here you have to have an entry in the tnsnames.ora file, and reference the alias to that entry in your connection code.

PHP code:

oci_connect($un, $pw, 'MYDB');

tnsnames.ora entry

MYDB = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)
(HOST = mymachine.mydomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MYDB.AU.ORACLE.COM)) )

Full Connection String

The full connection string does not require the use of a tnsnames.ora file.
You need to enter the full connection string when you connect to the database in your code.

PHP code:

oci_connect($un, $pw,
'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=mymachine.mydomain)(PORT=1521))
(CONNECT_DATA=(SERVER=DEDICATED)
(SERVICE_NAME = MYDB)))');

Easy Connect String

This is one Oracle 10g feature that I use daily. As I constantly connect to so many different databases in my day, this has saved me so much time as I don’t have to configure anything, just know the machine name and the database alias and I’m off.

The easy connect string does not require the use of a tnsnames.ora file, and is an abbreviated version of the full connection string. you must have the Oracle 10g client-side libraries to use the easy connect string.

PHP code:

oci_connect($un, $pw, '//mymachine.mydomain:port/MYDB');

6 Responses to Oracle Database Connection Strings in PHP

  1. Dinh says:

    Hi,
    Thanks for pointing me to the easy connect thingy, it’s an absolute timesaver!

  2. Alison says:

    Yes, I love it and use it all the time. No more messing with those long connect strings.

  3. Anonymous says:

    Oracle is like in Matrix, no? Registry can dirty, go registry cleaning software is making clean and smiling again. If clean windows registry more info you need always contacting me can help you. Friends 🙂

  4. Anonymous says:

    Thanks for the information!

  5. Petro says:

    hi, hi, hi! Beautiful site.

  6. Ted Burrett says:

    I can tell that this is not the first time you write about the topic. Why have you chosen it again?

Leave a comment