Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DB2存储过程的输出为null_Php_Sql_Stored Procedures_Db2 - Fatal编程技术网

Php DB2存储过程的输出为null

Php DB2存储过程的输出为null,php,sql,stored-procedures,db2,Php,Sql,Stored Procedures,Db2,我试图弄清楚为什么存储过程的输出返回null,即使过程中正在进行插入 首先,我的程序参数: PARAMS: IN IN_FIRST_NAME, IN IN_LAST_NAME, OUT OUT_V_R_ID 这是一个调用insert的例程,然后我试图将我的输出变量设置为创建的V_R_ID,这是记录的ID P1:开始原子 声明V_H_ID整数默认为0; 声明V_R_ID VARCHAR(20); 声明V_ROW_CHANGE_TIMESTAMP TIMESTAMP; 选择CAST(SCHEMA

我试图弄清楚为什么存储过程的输出返回null,即使过程中正在进行插入

首先,我的程序参数:

PARAMS:

IN IN_FIRST_NAME,
IN IN_LAST_NAME,
OUT OUT_V_R_ID
这是一个调用insert的例程,然后我试图将我的输出变量设置为创建的V_R_ID,这是记录的ID

P1:开始原子
声明V_H_ID整数默认为0;
声明V_R_ID VARCHAR(20);
声明V_ROW_CHANGE_TIMESTAMP TIMESTAMP;
选择CAST(SCHEMA.H_ID_SEQ的下一个值为VARCHAR(20))
进入V_R_ID
来自SYSIBM。系统1;
调用模式。插入\u记录(V\u R\u ID
,以你的名字
,姓
) ;
设置_V_R_ID=V_R_ID;
P1端
然后,在PHP中,我使用表单input first和last name调用函数,并将$out2设置为输出的变量。但转储模具只打印空值

function createJobTitleToDealerContact($firstName,$lastName){

    $stmt = \DB::connection('odbc')->getPdo()->prepare('CALL SCHEMA.CREATERECORD(?,?,?)'); 

    $stmt->bindParam(1, $firstName, PDO::PARAM_STR);
    $stmt->bindParam(2, $lastName, PDO::PARAM_STR);
    $stmt->bindParam(3, $out2, PDO::PARAM_STR, 20);

    $stmt->execute();
    dd($out2);
}

我只是在PHP中错误地调用了它吗?

您的第三个bindParm调用不应该使用3而不是6吗<代码>$stmt->bindParam(3$out2,PDO::PARAM_STR,20)对不起,我已经解决了这个问题,但仍然是同一个问题。那是我来源的一个遗留错误code@Dave因此,该过程确实成功地执行了,只是没有在输出中返回id,如果您可以证明(通过调试)执行了
SET_V_R_id=V_R_id
,并且OUT_V_R_id是varchar(20),然后尝试“$stmt->bindParam(3,$out2,PDO::PARAM_STR | PDO::PARAM_OUTPUT,20)`我没有DB2实例可供测试,但在执行调用后,需要执行另一个查询来选择输出。使用下面的代码将得到我在测试过程中输入的单个值<代码>$db=new-PDO('mysql:host=localhost;dbname=test;charset=utf8mb4','user','pass')$调用=$db->prepare('calltest(@out2')$调用->执行()$dosel=$db->query('select@out2')$响应=$dosel->fetchColumn()