es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo encadenar un parámetro dentro de comillas simples en PHP PDO para QCMDEXC

Para llamar a un programa en el sistema IBMI, necesito usar QCMDEXC para llamar al programa. Un ejemplo de lo que estoy tratando de hacer es:

$query = "CALL QCMDEXC('CALL PGM(IBMIPGM) PARM(?,?)')";

Estos parámetros son variables de entrada y salida del programa. ¿Cómo puedo enlazar un parámetro pdo utilizando:

$result->bindParam(1, $invalue, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 11);
$result->bindParam(2, $outvalue, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 11);

Me di cuenta de que las comillas simples dentro de la declaración están causando el problema, pero para que la declaración funcione, debe estructurarse de esta manera, a menos que haya un método alternativo del que no conozca.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para vincular los parámetros de PDO utilizando el comando QCMDEXC, puedes modificar la consulta escapando las comillas simples y cambiando el marcador de parámetro de “?” a “:1” y “:2” respectivamente, como se muestra a continuación:

    $query = "CALL QCMDEXC('CALL PGM(IBMIPGM) PARM(:1, :2)')";
    $result->bindParam(':1', $invalue, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 11);
    $result->bindParam(':2', $outvalue, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 11);
    

    Al hacer esto, podrás vincular los parámetros de PDO al comando QCMDEXC y llamar al programa en el IBMI sin problemas.

Comments are closed.