我试图使用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变量中?
请帮助。提前致谢
答案 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";
?>