PHP访问oracle存储过程实例详细解决方案

例如,我的本地Oracle数据库有一个包,其中包含一个存储过程:


创建包pkg_trans_rel是

-作者:测试
创建:
用途:试验

-公开类型声明
pkg_name VARCHAR2(20):= 'pkg_trans_rel;
-存储过程、测试
程序pro_gc_withdraw(in_merch_no在空,
in_withdraw_amt数量,
out_result号,
out_errmsg了VARCHAR2);
最后pkg_trans_rel;




包的名称pkg_trans_rel,和存储过程是pro_gc_withdraw,其中有四个参数,两个条目,和两个参数。

调用例子PHP通过PDO:


美元-> _pdo =新的PDO(pdo_db_dns,pdo_db_user,pdo_db_password);
叫叫pkg_trans_rel.pro_gc_withdraw美元=(,,,);

尝试{
支撑美元=美元-> _pdo ->准备($调用);

支撑美元-> bindparam(1,$ merch_no);
支撑美元-> bindparam(2,金额,PDO::param_int);

支撑美元-> bindparam(3,$结果,PDO::param_int,4);
支撑美元-> bindparam(4,error_msg美元,PDO::param_str,64);

支撑美元->执行();

} catch(PDOException,e)
{
$味精= 'sql:' $ E -> GetMessage();
味精= iconv('gbk美元,美元'utf-8,味精);
user_dump('sql:' $味精);
返回false;
}

…




第三个参数是对bindparam PDO::param_str,如果是其他类型

条目的值相对简单,参数稍微复杂一些,长度被指定。

谢谢你的阅读。我希望你能帮助你,谢谢你对这个站的支持。