Objetivo: Obtener el valor LAST_INSERT_ID() de un procedimiento almacenado MySQL y asignarlo a una variable PHP.
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.
Obtener variables de salida de procedimientos almacenados de MySQL en PHP PDO implica un 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.
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.
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