2016-04-29 50 views
0

我想在使用ODBC的PHP網站上調用Oracle存儲過程。 我有一張名爲「employees」的表。我想看看網站上的員工總人數。下面我正在描述從sql正常運行的函數,過程和pl/sql。如何在PHP中使用ODBC調用Oracle存儲過程

功能:

CREATE OR REPLACE FUNCTION func_totalEmployees 
RETURN number IS 
t_emp number; 
BEGIN 
     select count(*) INTO t_emp from employees; 
    RETURN t_emp; 
END; 

該功能將計算在員工表中的所有項目。那麼該值存儲在

t_emp

程序:

CREATE OR REPLACE PROCEDURE pro_totalEmployees(totalEmployees OUT number) 
IS 
BEGIN 
    totalEmployees := func_totalEmployees; 

END; 

此過程將運行我們的功能和使用totalEmployees可變輸出一個值。

PL/SQL:

DECLARE 
see_totalEmployees number; 
BEGIN 
    pro_totalEmployees(see_totalEmployees); 
     dbms_output.put_line('Total Employees you have: ' || see_totalEmployees); 
END; 

現在執行部分。這只是簡單的pl/sql查詢,它輸出我們程序中僱員的總數使用變量see_total僱員

就是這樣!

因此,在SQL中,我得到的輸出:員工人數您有:107

現在我的問題:

我怎麼能存儲到使用ODBC PHP變量這107?

請幫忙。在此先感謝

回答

0

你可以嘗試一些像這樣的事情,

<?php 
    $Tot_emp = 0; 

    // Create connection to db 
    $conn = odbc_connect('db_name','user_name','password') or die; 

    // Call your procedure 
    $stmt = $conn->prepare("CALL sp_returns_string(?)"); 

    // Bind the output parameter 
    $stmt->bindParam(1, $Tot_emp, PDO::PARAM_STR, 4000);  

    // call the stored procedure 
    $stmt->execute();   

    // $message is now populated with the output value 
    print "$Tot_emp\n"; 
    ?> 
+0

謝謝。但我使用ODBC建立與數據庫的連接。由於我不太瞭解,我可以在程序中使用oci嗎?請指教。 :) –