Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2010, 09:48
hharris
 
Fecha de Ingreso: febrero-2007
Mensajes: 28
Antigüedad: 17 años, 2 meses
Puntos: 0
Llamar Stored Procedure con PEAR - MDB2

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.