Yes you are right it's wrong grammatically but syntically it's correct. Have is a stative verb so according to that you either possess a think or not at all. Have can't be used in Have+ing form. It used in some case like I'm having a bad day. But here it means I'm going through a bad day which gonna end by the evening while in case of Knife you just have it and it's not gonna decay or disappear in some time.
There are 2,279 posts in Grammar and English Usage
View all the posts »