Detta är bara en gissning eftersom du inte har angett ditt schema, men är en av kolumnerna i din unika nyckel nullbar?
Redigera:
Som @G-Nugget säger i kommentarerna behöver du en unik nyckel på kolumnerna i fråga:
http://dev.mysql.com/doc /refman/5.6/en/insert-on-duplicate.html
Du måste ha en unik nyckel på kombinationen av kolumner som ska vara unik.
t.ex.:
ALTER TABLE yourTable ADD UNIQUE KEY (`canid`, `categoryid`);
När du ställer databasfrågor, vänligen inkludera SHOW CREATE TABLE
för tabellerna i fråga.