2 - 3 weeks is a long time dear, visit a nearest doctor.
He or she might take a look at your mouth to know the exact and infection. Doctor might take a swab for bacterial examination.
It could be candidiasis, or an ulcer . Wish u could send me a pic . Also i could have written u antibiotics, but it's dangerous to take them without knowing the specific bacteria/fungus.
Next Steps
see an oral medicine specialist.