Este error se muestra cuando uso appserver, yo trabajo en modulos separados apache, mysql, php pero el docente lo revisa en appserver. -.- !
ERROR :
Código HTML:
Ver original
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.' in C:\AppServ\www\GestRecHuman\persistencia\Departame ntoDAOMySQL.php:17 Stack trace: #0 C:\AppServ\www\GestRecHuman\persistencia\Departame ntoDAOMySQL.php(17): PDO->query('CALL SPgetAllDe...') #1 C:\AppServ\www\GestRecHuman\dominio\DepartamentoSe rvice.php(31): DepartamentoDAOMySQL->getAllDepartamentos() #2 C:\AppServ\www\GestRecHuman\dominio\DepartamentoFa cade.php(24): DepartamentoService->getAllDepartamentos() #3 C:\AppServ\www\GestRecHuman\presentacion\Modificar Empleado.php(88): DepartamentoFacade::listarDepartamentos() #4 C:\AppServ\www\GestRecHuman\presentacion\Modificar Empleado.php(118): ModificarEmpleado::main() #5 {main} thrown in C:\AppServ\www\GestRecHuman\persistencia\Departame ntoDAOMySQL.php on line 17
Estos son mis procesos
mi conexion es un singleton...
mi funcion que muestra un empleado
Código PHP:
Ver original
public function getEmpleadoById($empno) { $empleado = NULL; $query = 'CALL SPgetEmpleadoById(?)'; try { $cn = ConnectionManager::getInstance(); $rs = $cn->prepare($query); $rs->bindParam(1, $empno); $rs->execute(); if ($emp = $rs->fetch(PDO::FETCH_OBJ)) { $empleado = new Empleado($emp->empno, $emp->ename, $emp->job, $emp->mgr, $emp->hiredate, $emp->sal, $emp->comm, $emp->deptno); } $rs->closeCursor(); $cn = null; } catch (PDOException $ex) { throw $ex; } return $empleado; }
mi function que muestra los departamentos
Código PHP:
public function getAllDepartamentos()
{
$departamentos = array();
$query = 'CALL SPgetAllDepartamentos()';
try {
$cn = ConnectionManager::getInstance();
$rs = $cn->query($query); // e tratado con prepare y es igual
$rs->execute(); // aqui me muestra el error PDO
while ($dep = $rs->fetch(PDO::FETCH_OBJ)) {
$departamentos[] = new Departamento($dep->deptno,$dep->dname,$dep->loc);
}
$rs->closeCursor();
$cn = NULL;
} catch (PDOException $ex) {
throw $ex;
}
return $departamentos;
}
La verdad no se que hacer !!!
Saludos