Buenos días.
Estoy tratando de ejecutar un procedimiento almacenado de MySQL, a través de la libreria MDB2 de PEAR, pero me arroja el siguiente error:
MDB2 Error: unknown error - _doQuery: [Error message: Could not execute statement] [Last executed query: CALL proc_mayores_edad(30)] [Native code: 1312] [Native message: PROCEDURE ejemplos.proc_mayores_edad can't return a result set in the given context]
El procedimiento funciona correctamente desde la base de datos.
Esto es lo que hago:
Código PHP:
<?php
require_once 'MDB2.php';
$dsn = array ( 'phptype' => 'mysql',
'hostspec' => 'localhost:3306',
'username' => 'root',
'password' => '',
'database' => 'ejemplos');
$con =& MDB2::connect($dsn);
unset($dsn);
$con->loadModule('Function');
global $con;
function getMayoresEdad($edad)
{
global $con;
$mayorEdad = $con->executeStoredProc("proc_mayores_edad", array($edad));
if(PEAR::isError($mayorEdad))
{
die ($mayorEdad->getMessage().' - '.$mayorEdad->getUserinfo());
}
$personasMayores = $mayorEdad->fetchAll();
$mayorEdad->nextResult();
return $personasMayores;
}
print_r(getMayoresEdad(30));
?>
Nunca he trabajado con Stored Procedures a través de PEAR, así que no se si esta es la mejor forma de implementarlo, o si está bien. Me apoye para construir ese código con algo que encontré en un sitio.
Por tanto, les agradecería si me pudieran orientar al respecto.
Gracias, saludos cordiales.