Hola ha todos como están verán estoy tratando de hacer una Transaccion con PDO pero me muestra el siguiente error
   
Código PHP:
Ver original- 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 .NULL
mi consulta es la siguiente   
Código PHP:
Ver original- public static function registrar_seguimiento($nsp_data,$nsp_data_pv) { 
-         try { 
-             $cnBD = Conexion::getConexion(); 
-             $cnBD->beginTransaction(); 
-             $query_registrar = $cnBD->prepare('CALL sp_seguimiento_pap_registrar(?,?,?,?,?,?,?,?,?,?)'); 
-             $query_registrar->bindParam(1,$nsp_data["nsp_usuario"],PDO::PARAM_INT,11); 
-             $query_registrar->bindParam(2,date("Y-m-d",strtotime($nsp_data["nsp_fecha_requerimiento"])),- PDO ::PARAM_STR);
 
-             $query_registrar->bindParam(3,date("Y-m-d",strtotime($nsp_data["nsp_fecha_ultimo_contacto"])),- PDO ::PARAM_STR);
 
-             $query_registrar->bindParam(4,date("Y-m-d",strtotime($nsp_data["nsp_fecha_proximo_contacto"])),- PDO ::PARAM_STR);
 
-             $query_registrar->bindParam(5,$nsp_data["nsp_contacto"],PDO::PARAM_INT,11); 
-             $query_registrar->bindParam(6,$nsp_data["nsp_estatus"],PDO::PARAM_INT,11); 
-             $query_registrar->bindParam(7,$nsp_data["nsp_actividad"],PDO::PARAM_INT,11); 
-             $query_registrar->bindParam(8,$nsp_data["nsp_referencia"],PDO::PARAM_INT,11); 
-             $query_registrar->bindParam(9,$nsp_data["nsp_unidad_negocio"],PDO::PARAM_INT,11); 
-             $query_registrar->bindParam(10,trim($nsp_data["nsp_observaciones"]),- PDO ::PARAM_STR,500);
 
-             $query_registrar->execute(); 
-             $result = $query_registrar->fetch(PDO::FETCH_ASSOC); 
-             if (isset($result["ID"])) { 
-                 $sql = "INSERT INTO seg_pap_servicio(seg_pap_id,jc_servicio_id,seg_pap_programa_id,seg_pap_programa_fecha,seg_pap_valor_venta) VALUES"; 
-                 for ($ni=0;$ni<count($nsp_data_pv);$ni++){ 
-                     $sql.="(".$result["ID"].",".$nsp_data_pv[$ni]['nsp_programa'].",".$nsp_data_pv[$ni]['nps_campana_programa'].",".$nsp_data_pv[$ni]['nsp_periodo_programa'].",'".$nsp_data_pv[$ni]['nsp_valor_venta']."'),"; 
-                 } 
-                 $smt = $cnBD->prepare($sql); 
-                 $smt->bindParam(1,$result["ID"],PDO::PARAM_INT,11); 
-                 $smt->bindParam(2,$nsp_data_pv["nsp_programa"],PDO::PARAM_INT,11); 
-                 $smt->bindParam(3,$nsp_data_pv["nps_campana_programa"],PDO::PARAM_INT,11); 
-                 $smt->bindParam(4,$nsp_data_pv["nsp_periodo_programa"],PDO::PARAM_INT,11); 
-                 $smt->bindParam(5,$nsp_data_pv["nsp_valor_venta"],PDO::PARAM_STR); 
-                 $smt->execute(); 
-             } 
-             $cnBD->commit(); 
-         } catch (PDOException $e) { 
-             echo $e->getMessage(); 
-             $cnBD->rollback(); 
-         } 
-     } 
mi SP devuelve el id del ultimo registro insertado ayuda