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

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

WBOY
WBOYOriginal
2016-06-06 19:42:341051Durchsuche

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)', )

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn