1

I'm using yum to install the package.

I ran the command:

yum list installed *php*

Is says that php-oci8.x86_64 is installed.

When I go to the web page and it gives me a blank page. I turn on php errors and it says

Fatal error: Call to undefined function oci_connect()

What am I missing? Do I have to do something in my php.ini file?

Any help is greatly appreciated.

Edit: Here is the code for the page too.

protected function oracleSearch($id){

            $live = true;

            if($live === true){
                $db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ###.###.###.###)(PORT = 1521)))(CONNECT_DATA = (SID = login)))"; 

                $conn = oci_connect("loginname","password",$db) or die( "Could not connect to Oracle database!");
                if($conn == false){
                    $msg = OCIError($conn) . "<br/>";
                }

                $output = "";

                $stmt = oci_parse($conn,"select * from v_loginnum_prepnum where transaction_id = '".$id."'");
                oci_execute($stmt);
                $ok = oci_fetch_all($stmt,$results);

                $a1 = $results['ACCTNUM'][0];


                $stmt2 = oci_parse($conn,"select * from v_accountdef where acctnum = '$a1'");
                oci_execute($stmt2);
                $ok = oci_fetch_all($stmt2,$results);
                $a2 = $results['ACCTNAME'][0];
                $oracleArray = array ('accountnumber' => $a1, 'companyname' => $a2);

            }else{
                $oracleArray = array ('accountnumber' => '10012', 'companyname' => 'NYS DOC');
            }

            return $oracleArray;
        }

Edit 2:

PHP.ini file:

[OCI8]

; Connection: Enables privileged connections using external
; credentials (OCI_SYSOPER, OCI_SYSDBA)
; http://php.net/oci8.privileged-connect
;oci8.privileged_connect = Off
; Connection: The maximum number of persistent OCI8 connections per
; process. Using -1 means no limit.
; http://php.net/oci8.max-persistent
;oci8.max_persistent = -1

; Connection: The maximum number of seconds a process is allowed to
; maintain an idle persistent connection. Using -1 means idle
; persistent connections will be maintained forever.
; http://php.net/oci8.persistent-timeout
;oci8.persistent_timeout = -1

; Connection: The number of seconds that must pass before issuing a
; ping during oci_pconnect() to check the connection validity. When
; set to 0, each oci_pconnect() will cause a ping. Using -1 disables
; pings completely.
; http://php.net/oci8.ping-interval
;oci8.ping_interval = 60

; Connection: Set this to a user chosen connection class to be used
; for all pooled server requests with Oracle 11g Database Resident
; Connection Pooling (DRCP).  To use DRCP, this value should be set to
; the same string for all web servers running the same application,
; the database pool must be configured, and the connection string must
; specify to use a pooled server.
;oci8.connection_class =

; High Availability: Using On lets PHP receive Fast Application
; Notification (FAN) events generated when a database node fails. The
; database must also be configured to post FAN events.
;oci8.events = Off

; Tuning: This option enables statement caching, and specifies how
; many statements to cache. Using 0 disables statement caching.
; http://php.net/oci8.statement-cache-size
;oci8.statement_cache_size = 20

; Tuning: Enables statement prefetching and sets the default number of
; rows that will be fetched automatically after statement execution.
; http://php.net/oci8.default-prefetch
;oci8.default_prefetch = 100

; Compatibility. Using On means oci_close() will not close
; oci_connect() and oci_new_connect() connections.
; http://php.net/oci8.old-oci-close-semantics
;oci8.old_oci_close_semantics = Off
Marc Brigham
  • 2,114
  • 5
  • 22
  • 27
  • Go to your php.ini file and uncomment the php_oci* lib. – Jorge Campos Jan 15 '14 at 17:15
  • I edited the question to include what I have in my php.ini file that has to do with oci8. What should I uncomment? I don't see the lib that your talking about. – Marc Brigham Jan 15 '14 at 17:43
  • That is the specific configurations for the oci lib. you have to uncomment the oci lib: Look for this on your php.ini: Dynamic Extensions – Jorge Campos Jan 15 '14 at 18:54
  • 1
    Possible duplicate of [Fatal error: Call to undefined function oci\_connect()](http://stackoverflow.com/questions/8635881/fatal-error-call-to-undefined-function-oci-connect) – Tim Penner Mar 27 '16 at 20:15
  • For future readers, Oracle has a page on installing PHP packages from yum. See http://yum.oracle.com/oracle-linux-php.html – Christopher Jones May 14 '20 at 22:21

2 Answers2

0

1) Do a search in php.ini file and locate:

;extension=php_oci8.dll

2) Remove the ; making it look like this:

extension=php_oci8.dll

3) Save and restart

Tim Penner
  • 3,551
  • 21
  • 36
0

From the official documentation:

To enable the OCI8 extension, configure PHP with the option --with-oci8 .

Raptor
  • 53,206
  • 45
  • 230
  • 366