Cita: MySQL ha dicho:
#1312 - PROCEDURE documentacion.insertar can't return a result set in the given context
Suele producirse cuando quieres recorrer un resultado obtenido en php utilizando la librería MySQL. Es un problema de implementación de esa librería; lo que debes hacer es cambiarla por la MYSQLI, donde si puedes hacerlo.
El problema se da porque un SELECT en un SP no es una tabla real, aunque la invoque, por lo que no puedes recorrerla. En cambio la librería MySQLI mantiene el resultado y lo hace accesible para un recorrido con un foreach().
Fíjate en las
FAQs de PHP. allí hay algunos ejemplos útiles de MYSQLI.