Dies ist nur eine Vermutung, da Sie Ihr Schema nicht angegeben haben, aber ist eine der Spalten in Ihrem eindeutigen Schlüssel nullfähig?
Bearbeiten:
Wie @G-Nugget in den Kommentaren sagt, benötigen Sie einen eindeutigen Schlüssel für die betreffenden Spalten:
http://dev.mysql.com/doc /refman/5.6/en/insert-on-duplicate.html
Sie benötigen einen eindeutigen Schlüssel für die Kombination von Spalten, die eindeutig sein sollten.
zB:
ALTER TABLE yourTable ADD UNIQUE KEY (`canid`, `categoryid`);
Wenn Sie Fragen zur Datenbank stellen, geben Sie bitte auch SHOW CREATE TABLE
an für die betreffenden Tabellen.