Objetivo: Buscar o valor LAST_INSERT_ID() de um procedimento armazenado MySQL e atribuí-lo a uma variável PHP.
Apesar do código PHP fornecido usando ligações PDO, ele não consegue capturar a variável de saída LAST_INSERT_ID() do procedimento armazenado simpleProcedure.
Buscar variáveis de saída de procedimentos armazenados do MySQL em PHP PDO envolve um processo de dois estágios:
Etapa 1: Execução do Procedimento
$stmt = $db->prepare("CALL simpleProcedure(:name, @returnid)"); $stmt->bindValue(':name', $name, PDO::PARAM_STR); $stmt->bindParam(':returnid', $returnid, PDO::PARAM_INT, 11, PDO::PARAM_INOUT); // Note the PDO::PARAM_INOUT $stmt->execute();
Ao vincular o espaço reservado :returnid como INOUT, o PDO não apenas passará a variável PHP para o procedimento, mas também a atualizará com o valor da variável de saída.
Etapa 2: Recuperando a variável de saída
$sql = "SELECT @returnid AS output_id"; $result = $db->query($sql)->fetch(PDO::FETCH_ASSOC); $lastInsertId = $result['output_id'];
Consulte a variável de usuário MySQL @returnid para atribuir seu valor à variável PHP $lastInsertId.
Binding PHP variáveis para parâmetros INOUT e OUT para procedimentos MySQL podem encontrar erros de tempo de execução. Recomenda-se vincular variáveis apenas aos parâmetros IN.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3