"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo recuperar variables de salida de procedimientos almacenados de MySQL en PHP con PDO?

¿Cómo recuperar variables de salida de procedimientos almacenados de MySQL en PHP con PDO?

Publicado el 2024-11-18
Navegar:693

How to Retrieve Output Variables from MySQL Stored Procedures in PHP with PDO?

Recuperar variables de salida de procedimientos almacenados en PHP con PDO

Objetivo: Obtener el valor LAST_INSERT_ID() de un procedimiento almacenado MySQL y asignarlo a una variable PHP.

Declaración del problema

A pesar del código PHP proporcionado que utiliza enlaces PDO, no logra capturar la variable de salida LAST_INSERT_ID() del procedimiento almacenado simpleProcedure.

Explicación

Obtener variables de salida de procedimientos almacenados de MySQL en PHP PDO implica un proceso de dos etapas:

  1. Ejecutar el procedimiento almacenado y asignar variables de salida a las variables de usuario de MySQL.
  2. Consultar las variables de usuario de MySQL para recuperar sus valores en PHP variables.

Solución: Proceso de dos etapas

Etapa 1: Ejecución del procedimiento

$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();

Al vincular el marcador de posición :returnid como INOUT, PDO no solo pasará la variable PHP al procedimiento sino que también la actualizará con el valor de la variable de salida.

Etapa 2: Recuperar la variable de salida

$sql = "SELECT @returnid AS output_id";
$result = $db->query($sql)->fetch(PDO::FETCH_ASSOC);

$lastInsertId = $result['output_id'];

Consulta la variable de usuario de MySQL @returnid para asignar su valor a la variable PHP $lastInsertId.

Nota

Enlace de PHP Las variables a los parámetros INOUT y OUT para procedimientos MySQL pueden encontrar errores de tiempo de ejecución. Se recomienda vincular únicamente variables a parámetros IN.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3