如何使用ODBC在PHP上调用oracle存储过程

时间:2016-04-29 10:34:05

标签: php oracle stored-procedures odbc

我试图使用ODBC在PHP网站上调用Oracle存储过程。 我有一张名为“员工”的表。我想在网站上看到员工总数。下面我描述了从sql正常运行的函数,过程和pl / sql。

功能:

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

PROCEDURE:

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_totalEmployees 输出我们程序中的员工总数

就是这样!

所以在sql,我得到了输出:你有的员工总数:107

现在我的问题:

如何使用ODBC将此107存储到PHP变量中?

请帮助。提前致谢

1 个答案:

答案 0 :(得分: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";
    ?>