>  기사  >  php教程  >  PHP PDO 调用 oracle数据库存储过程,无法正常获取游标变量,有

PHP PDO 调用 oracle数据库存储过程,无法正常获取游标变量,有

WBOY
WBOY원래의
2016-06-06 19:42:341008검색

create or replace procedure t_pad_user_login( user_name varchar2, /*用户名*/ user_pwd varchar2, /*用户密码*/ user_lon float, /*经度*/ user_lat float, /*纬度*/ out_user_xh out varchar2, /*用户序号*/ out_user_realname out varchar2, /*用户姓

create or replace procedure t_pad_user_login(

user_name varchar2, /*用户名*/
user_pwd varchar2, /*用户密码*/
user_lon float, /*经度*/
user_lat float, /*纬度*/
out_user_xh out varchar2, /*用户序号*/
out_user_realname out varchar2, /*用户姓名*/
ret out varchar2, /*返回代码 1 成功 -1 失败*/
error out varchar2, /*错误信息*/
o_cur out SYS_REFCURSOR

)

$stmt = $db->prepare("begin t_pad_user_login(user_name => ?, user_pwd => ?, user_lon => ?, user_lat => ?, out_user_xh => ?, out_user_realname => ?, ret => ?, error => ?, o_cur => ? ); END;");


$stmt->bindParam(1, $user_name, PDO::PARAM_STR, 50);
$stmt->bindParam(2, $user_pwd, PDO::PARAM_STR, 50);
$stmt->bindParam(3, $user_lon, PDO::PARAM_STR, 50);
$stmt->bindParam(4, $user_lat, PDO::PARAM_STR, 50);
$stmt->bindParam(5, $user_xh, PDO::PARAM_INPUT_OUTPUT, 50);
$stmt->bindParam(6, $user_realname, PDO::PARAM_INPUT_OUTPUT, 50);
$stmt->bindParam(7, $error_code, PDO::PARAM_INPUT_OUTPUT, 50);
$stmt->bindParam(8, $error_msg, PDO::PARAM_INPUT_OUTPUT, 2000);
$stmt->bindParam(9, $error_msg1, PDO::PARAM_LOB);

 

错误:array ( 0 => 'HY000', 1 => 6550, 2 => 'OCIStmtExecute: ORA-06550: 第 1 行, 第 7 列: PLS-00306: 调用 \'T_PAD_USER_LOGIN\' 时参数个数或类型错误 ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored (ext\\pdo_oci\\oci_statement.c:148)', )

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.