Call Oracle stored procedure from PHP

后端 未结 2 1612
灰色年华
灰色年华 2020-12-18 04:15

I am trying to execute and get data from my procedure:

Here is the way my procedure is defined:

create or rep         


        
2条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-18 05:03

    This example is based in Oracle Documentation

    // Define MYDB connection string as described in tnsnames.ora
    define("MYDB","(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = JXYX.com)(PORT = 1521)))(CONNECT_DATA=(SID=DHSJKS)))");
    // Connect to database
    $conn = oci_connect("XXXXXX","XXXXXXXX",MYDB);  
    // Through error if not connected 
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }  
    // Bind the your input and output parameters to PHP variables                
    $stmt = oci_parse($conn,'BEGIN SP_GET_MY_DATA(:POP, :SEG, :DUR, :VIEW, :PAGE, :OUTPUT_CUR); END;');                     
    oci_bind_by_name($stmt,':POP',$pop);           
    oci_bind_by_name($stmt,':SEG',$seg);           
    oci_bind_by_name($stmt,':DUR',$dur);           
    oci_bind_by_name($stmt,':VIEW',$view);           
    oci_bind_by_name($stmt,':PAGE',$page);  
    // Declare your cursor         
    $OUTPUT_CUR = oci_new_cursor($conn);
    oci_bind_by_name($stmt,":OUTPUT_CUR", $OUTPUT_CUR, -1, OCI_B_CURSOR);    
    // Execute statement               
    oci_execute($stmt); 
    // Execute the cursor
    oci_execute($OUTPUT_CUR);
    // Fetch results
    while ($data = oci_fetch_assoc($OUTPUT_CUR)) {
        print_r($data);
    }
    

提交回复
热议问题