We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

# Connecting To an Oracle DB with PHP

on
Medium Priority
764 Views
Hello,

I'm trying to connect to a oracle database using PHP.  I have already enable the extension OCI8 and tried to connect. However when I try to connect I get the error message:

Fatal error: Call to undefined function oci_connect() in C:\wamp\www\test\connection2.php on line 15

Below is the code I'm using to connect. For some reason, i think Its not recognizing the OCI. If anyone see anything wrong with my code please let me know thanks.
$c = oci_connect("username","password","localhost/xe");  Comment Watch Question ## View Solution Only Systeemontwikkelaar, Database Administrator Commented: Are you sure you enabled the Oracle extension. Can you try do get the results from phpinfo() from your server? To do this: - Create a new php file - Put in the code below - Open the php file through your webserver in a brwoser <?php phpinfo(); ?>  Systeemontwikkelaar, Database Administrator Commented: If it is enabled you should get something like: OCI8 Support => enabled Version => 1.2.4 Revision =>$Revision: 1.269.2.16.2.38 $Active Persistent Connections => 0 Active Connections => 0 Oracle Version => 10.1 Compile-time ORACLE_HOME => /ORACLE/app/oracle/product/client Libraries Used => Temporary Lob support => enabled Collections support => enabled If it's not enabled you should check if you've edited the right php.ini file. If everything is ok try the code below to create a testpage to see if the connection succeeds. I see that you're using "localhost/xe" in your connection. Try to use the local ip address "127.0.0.1" to connect. Windows might create problem by using the value "localhost". <?php if ($conn = oci_connect('hr', 'hr', '//127.0.0.1:1521/xe')) {
print 'Successfully connected to Oracle Database XE!';
oci_close($conn); } else {$errmsg = oci_error();
print 'Oracle connect error: ' . \$errmsg;
}
?>

Program Analyst / Web Developer

Commented:
I think I properly enable oci8. But its not showing on the information page. I went into the php.ini file and enable it in the the extension area by taking away the ";".  But I just found the OCI8 section below. Probably a stupid question, but do I need to un-comment and enable all the scripts in that section?

Commented:
If the extension is not showing on the info page than you did not enable it. You probably have multiple php.ini  files.
Can you search your server/computer for the php.ini files.

If you want to set different settings like max connection etc then you can enable th settints in the OCI8 section.
Program Analyst / Web Developer

Commented:
I've checked there appears to be only one.  The only place oci8 appears in the php info in the configure command:

cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared"

Is there any possible way that the extension could be blocked by another extention?
Program Analyst / Web Developer
Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Unlock the solution to this question.